我正在尝试动态地,使用代码通过他的子类更改我的Root
的UINavigationController
。
基本上,我的Storyboard
是这样的:
#标记:应用程序情节提要
如您所见,我将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/