我想在我的Mac桌面应用程序中有标签菜单,每个标签将显示progresbarr(从互联网加载内容),然后加载数据。我想在每个页面中使用相同的LoadingViewController,并且只传递应下载的数据(根据用户选择的选项卡)。我如何将信息从NSTabViewController传递给子ViewController? 这就是我的故事板的样子:
答案 0 :(得分:1)
在故事板"文档大纲"窗格(左侧可折叠的窗格,列出视图,对象等),在选项卡视图控制器下将有两个标记为" Tab View Item"的对象。给每个人一个标识符。 (在下面的例子中,它们是" entriesTabItem"和" contactsTabItem"。
然后,子类TabViewController,并在该子类中,在" viewDidLoad"中添加如下内容:
override func viewDidLoad() {
super.viewDidLoad()
var entryIndex = self.tabView.indexOfTabViewItemWithIdentifier("entriesTabItem")
var entriesTVItem:NSTabViewItem = self.tabViewItems[entryIndex] as NSTabViewItem
var entriesVC:EntryViewController? = entriesTVItem.viewController as EntryViewController?
if (entriesVC != nil){
entriesVC!.topTabView = self.tabView
entriesVC!.topTabVC = self
}
var contactIndex = self.tabView.indexOfTabViewItemWithIdentifier("contactsTabItem")
var contactTVItem:NSTabViewItem = self.tabViewItems[contactIndex] as NSTabViewItem
var contactVC:ContactsViewController? = contactTVItem.viewController as ContactsViewController?
if(contactVC != nil) {
contactVC!.topTabView = self.tabView
contactVC!.topTabVC = self
}
}
在上面的代码中,视图控制器可以是同一个类,而不是它们在这里的不同,你可以传递你想要的任何变量。
我上周必须这样做,这让我抓狂!