我正在尝试动态地,使用代码通过他的子类更改我的RootUINavigationController
基本上,我的Storyboard是这样的:
#标记:应用程序情节提要
ios - 通过“UINavigationController”子类正确设置“Root ViewController”-LMLPHP
如您所见,我将CustomNavigationController设置为Initial View Controller选项(通过Storyboard)。
如何通过CustomNavigationController类设置运行应用程序时将显示的根ViewController
#MARK:“自定义导航控制器”类

class CustomNavigationController: UINavigationController {

  // What method should i use?

}

最佳答案

右边的两个视图控制器必须被赋予脚本标识符(在“标识检查器”选项卡上)。
然后在自定义的NavVC中,在根目录中构建所需的视图控制器,并通过使其成为导航堆栈(这是一个数组)中唯一的视图控制器来将其设置为根目录。。。

- (void)viewWillAppear:animated {
    [super viewWillAppear:animated];
    UIStoryboard *storyboard = [self storyboard];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"one of the ids you set up"];
    self.viewControllers = @[ vc ];
}

在斯威夫特(相当肯定)。。。
override func viewWillAppear() {
    super.viewWillAppear()
    let storyboard = self.storyboard
    let vc = storyboard.instantiateViewController(withIdentifier: "one of the ids you set up")
    self.viewControllers = [ vc ]
}

关于ios - 通过“UINavigationController”子类正确设置“Root ViewController”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45105208/

10-12 00:15
查看更多