如何在cocoa应用程序中更改视图控制器



我有两个视图控制器,一个是主存储板的视图控制器,另一个是NSPageController。

我有一个按钮,按下它后,我想将视图控制器从main.storyboard更改为NSPageController。

在主存储板的Viewcontroller.m中

- (void)loginButtonPressed:(id)sender {
NSPageController *pageController = [[NSPageController alloc] initWithNibName:@"CustomPageController" bundle:nil];
}

我有一个页面控制器的实例,那么如何将视图控制器从视图控制器更改为CustomPageController?

最简单的方法是使用带有无表NSTabView的NSTabViewController。将windows NSViewController替换为NSTabViewController,并将NSTabView样式切换为tabless(在Interface Builder中)。在分配给选项卡的单个NSViewController中,您可以使用@IBAction将封闭的NSTabViewController切换到其他视图控制器,如下所示。

@IBAction func switchViewController(_ sender: Any) {
if let tabViewController = parent as? NSTabViewController{
tabViewController.selectedTabViewItemIndex = 1
}
} 

这样做还有一个额外的好处,即转换也可以设置动画。

您的NSPageController将是TabViewControllers选项卡项之一。

最新更新