更新 NSSplitViewController 中的第二个视图控制器
Update second view controller in NSSplitViewController
我有一个 NSSplitViewController
,其中 first viewcontroller
显示 table,second viewcontroller
应该显示 viewcontroller 列表中的 viewcontroller s 基于 table 行的选择。
我正在使用 tableViewSelectionDidChange()
获取选定的行。
现在我有一堆 viewcontrollers(以行号给出的情节提要 ID)我应该添加和删除到 NSSplitViewController
中的 second viewcontroller
我该怎么做?
你走在正确的道路上。
在 tableViewSelectionDidChange()
中,您需要使用 NSStoryboard
s instantiateController(withIdentifier: String)
方法从故事板中实例化一个新的 viewController。然后你可以将它设置为你的 splitViews 第二个视图控制器。
然后你需要创建一个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
Objective C表示第一种方法。
NSStoryboard * mainStoryboard = [NSStoryboard storyboardWithName:@"Main" bundle:nil];
NSViewController * sourceViewController = [mainStoryboard instantiateControllerWithIdentifier:identrifier];
NSSplitViewItem * item = [NSSplitViewItem splitViewItemWithViewController:sourceViewController];
[self removeSplitViewItem:[self.splitViewItems objectAtIndex:1]];
[self addSplitViewItem:item];
我有一个 NSSplitViewController
,其中 first viewcontroller
显示 table,second viewcontroller
应该显示 viewcontroller 列表中的 viewcontroller s 基于 table 行的选择。
我正在使用 tableViewSelectionDidChange()
获取选定的行。
现在我有一堆 viewcontrollers(以行号给出的情节提要 ID)我应该添加和删除到 NSSplitViewController
second viewcontroller
我该怎么做?
你走在正确的道路上。
在 tableViewSelectionDidChange()
中,您需要使用 NSStoryboard
s instantiateController(withIdentifier: String)
方法从故事板中实例化一个新的 viewController。然后你可以将它设置为你的 splitViews 第二个视图控制器。
然后你需要创建一个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
Objective C表示第一种方法。
NSStoryboard * mainStoryboard = [NSStoryboard storyboardWithName:@"Main" bundle:nil];
NSViewController * sourceViewController = [mainStoryboard instantiateControllerWithIdentifier:identrifier];
NSSplitViewItem * item = [NSSplitViewItem splitViewItemWithViewController:sourceViewController];
[self removeSplitViewItem:[self.splitViewItems objectAtIndex:1]];
[self addSplitViewItem:item];