我有一个 NSSplitViewController
,其中 first viewcontroller
显示一个表,second viewcontroller
应该根据选择表行。
我正在使用 tableViewSelectionDidChange()
获取选定的行。
现在我有一堆 View Controller ( Storyboard ID 作为行号给出)我应该添加和删除到 NSSplitViewController
中的 second viewcontroller
我该怎么做?
最佳答案
您走在正确的道路上。
在 tableViewSelectionDidChange()
中,您需要使用 NSStoryboard
的 instantiateController(withIdentifier: String)
方法从 Storyboard中实例化一个新的 viewController。然后您可以将其设置为您的 splitViews 第二个 View Controller 。
然后您需要创建一个splitViewItem
。您可以使用 init 方法,它为此接受一个 viewController (NSSplitViewItem(viewController:)
)。
最后,您有两种可能性来添加新的 viewController。
您可以使用 add/removeSplitViewItem
方法,也可以直接设置 splitViewItems
数组。
我在代码中的话:
guard let splitViewController = self.parent as? NSSplitViewController,
let viewController = self.storyboard?.instantiateController(withIdentifier: "yourIdentifier") as? NSViewController
else { return }
let item = NSSplitViewItem(viewController: viewController)
// Method one
splitViewController.removeSplitViewItem(splitViewController.splitViewItems[1])
splitViewController.addSplitViewItem(item)
// OR method two
var items = splitViewController.splitViewItems
items[1] = item
splitViewController.splitViewItems = items
关于swift - 更新 NSSplitViewController 中的第二个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42896102/