我正在尝试动态地使用代码通过他的子类更改我的UINavigationController
的Root
。
基本上,我的Storyboard
看起来像这样:
#MARK:应用 Storyboard
如您所见,我将 CustomNavigationController
设置为 Initial View Controller
选项(通过 Storyboard
)。
我如何通过 CustomNavigationController
类设置将在我运行应用程序时显示的根 ViewController
?
#MARK : 'CustomNavigationController' 类
class CustomNavigationController: UINavigationController {
// What method should i use?
}
最佳答案
右边的两个 View Controller 必须被赋予 Storyboard标识符(在身份检查器选项卡上)。
然后在您的自定义 NavVC 中,在根目录中构建您想要的 View Controller ,并通过使其成为导航堆栈(这是一个数组)中唯一的 View Controller 来使其成为根目录...
- (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 - 正确的方式设置 'Root ViewController' 到 'UINavigationController' 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45105208/