主视图中的 UISplitViewController 详细视图控制器加载 window
UISplitViewController detail view controller loads in master view window
我有一个 UISplitViewController
具有以下布局,由一个主视图控制器和详细视图控制器组成。
这对于具有单个视图的基本拆分视图来说效果很好,但我需要支持来自 UITableViewController
(主视图)的多个 segue,并且在数据传递之前不加载详细视图;否则应用程序将因可选错误而崩溃。
我试过这样设置;
这将加载一个空白ViewController
作为详细信息,当UISplitViewController
加载时,选择了一行时,i具有详细信息到另一个视图控制器,应显示为UISplitViewController
中的详细视图。
不幸的是,这并不完全有效,所有数据都在没有崩溃的情况下传递和加载,但细节 segues 实际上在拆分视图的主视图 window 中加载视图控制器,而不是细节视图。
有点像这样,
我如何拥有多个细节视图控制器,直到从主视图 UITableViewController
启动 segue 并在细节 window 中打开它们才加载?
这是来自 MasterViewController 的代码
override func viewDidLoad() {
super.viewDidLoad()
self.splitViewController!.delegate = self;
self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
self.extendedLayoutIncludesOpaqueBars = true
}
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return true
}
如果 segue 已经存在,则尝试从主视图中删除 segue 到其他详细视图,然后使用详细 segue 重新创建它们。
我有一个 UISplitViewController
具有以下布局,由一个主视图控制器和详细视图控制器组成。
这对于具有单个视图的基本拆分视图来说效果很好,但我需要支持来自 UITableViewController
(主视图)的多个 segue,并且在数据传递之前不加载详细视图;否则应用程序将因可选错误而崩溃。
我试过这样设置;
这将加载一个空白ViewController
作为详细信息,当UISplitViewController
加载时,选择了一行时,i具有详细信息到另一个视图控制器,应显示为UISplitViewController
中的详细视图。
不幸的是,这并不完全有效,所有数据都在没有崩溃的情况下传递和加载,但细节 segues 实际上在拆分视图的主视图 window 中加载视图控制器,而不是细节视图。
有点像这样,
我如何拥有多个细节视图控制器,直到从主视图 UITableViewController
启动 segue 并在细节 window 中打开它们才加载?
这是来自 MasterViewController 的代码
override func viewDidLoad() {
super.viewDidLoad()
self.splitViewController!.delegate = self;
self.splitViewController!.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
self.extendedLayoutIncludesOpaqueBars = true
}
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController, ontoPrimaryViewController primaryViewController: UIViewController) -> Bool {
return true
}
如果 segue 已经存在,则尝试从主视图中删除 segue 到其他详细视图,然后使用详细 segue 重新创建它们。