Lau*_*May 24 uitabbarcontroller ios
我有一个tabbar控制器作为根视图控制器.我想预先加载tab [1,2,3]的视图(选项卡0自动加载为第一个选项卡).
我基本上希望viewdidload中的代码在用户点击选项卡之前运行.
谢谢
Joe*_*ets 34
如果您使用视图初始化代码并将其移动到loadView而不是viewDidLoad,则可以通过简单地调用viewController.view来强制加载属于UITabBarController一部分的每个UIViewControllers.发生这种情况是因为UIViewController会在被要求时通过loadView函数创建视图对象.
for(UIViewController * viewController in tabBarController.viewControllers){
viewController.view;
}
Run Code Online (Sandbox Code Playgroud)
或者更简单
[tabBarController.viewControllers makeObjectsPerformSelector:@selector(view)];
Run Code Online (Sandbox Code Playgroud)
guo*_*zzu 15
在iOS 8中,我创建了一个名为TSMainBarViewController的UITabViewController的子类.在viewDidLoad
TSMainBarViewController 的功能中,我刚刚添加了这段代码:
for(UINavigationController * viewController in self.viewControllers){
[[viewController.viewControllers firstObject] view];
}
Run Code Online (Sandbox Code Playgroud)
然后将加载所有viewControllers(UINavigationController的root viewController).我的所有viewControllers都是在StoryBoard中创建的.不要loadView
在UIViewController中实现该功能.
来自EligyD的Swift 3代码:
for viewController in self.viewControllers! {
_ = viewController.view
}
Run Code Online (Sandbox Code Playgroud)
要处理可能有也可能没有导航控制器的选项卡控制器:
viewControllers?.forEach {
if let navController = $0 as? UINavigationController {
navController.topViewController?.view
} else {
$0.view.description
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10448 次 |
最近记录: |