我的应用程序有一个ViewController,即在应用程序启动时打开的第一个屏幕。我通过mainstoryboard向应用程序添加了一个UITabBarController。我将UITabBarController的标题更改为“myTabBarController”。现在我该如何从已经存在的ViewController的viewDidLoad函数中访问这个TabBarController?从swift代码访问UITabBarController
回答
在AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let main = storyboard.instantiateViewControllerWithIdentifier("myTabBarController") as! myTabBarController
self.window!.rootViewController = main
self.window!.makeKeyAndVisible()
return true
}
你应该设置myTabBarController的标识在Main.storyboard。
惊讶!如果你想从视图控制器的viewDidLoad函数加载UITabBarController,你为什么需要视图控制器? 但是解决方案可以是这样的: 您可以使segue:右键单击视图控制器,然后拖动到tabBarController并选择segue“show”。
但是,如果您将UITabBarController嵌入到在应用程序开始时加载TabBarController的视图控制器中,那么效果会更好。 1:选择视图控制器 2:在Xcode 3的菜单栏转到[编辑]:选择嵌入在 4:选择标签栏控制器
和你做:)
其他的解决办法是: 从故事板中删除ViewController 选择您添加的tabBarController。 转到左侧窗格中的ViewController的“属性检查器”,选择“是最初的视图控制器”
ADDED 1.给标识符TabBarController像由张家齐 2.添加按钮,在视图控制器给出,使行动吧类(做动作右键单击添加按钮并拖动到的ViewController类,并选择行动,而不是出口。) 3.现在在操作添加以下代码:
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyBoard.instantiateViewControllerWithIdentifier("myTabBarController") //vc is instance of TabBarController.
self.presentViewController(vc, animated: true, completion: nil)
DONE :)
实际上,我需要在实际呈现TabBarController之前从当前ViewController - 。viewDidLoad进行一些预处理,因此我确实希望保留当前的viewcontroller。 –
SEE在回答中添加了以上部分:您可以这样做。 – Dari
太棒了,这个工程..谢谢达里和下面的用户。我如何选择这个作为正确的答案,我没有足够的特权来投票这个职位。 –
- 1. 任何代码如何从uitabbarcontroller访问viewcontroller的代码示例?
- 2. 从UIVIewController访问UITabBarController
- 3. Swift通过UITabBarController访问viewController的函数
- 4. 在Swift 3中访问代码错误
- 5. 无法访问从代码
- 6. 从代码访问网站
- 7. UITableView - 从ViewWillAppear访问代码
- 8. 如何从Objective-C代码访问Swift类级枚举
- 9. 从今日小工具访问Swift代码
- 10. Swift代码语法问题
- 11. 从Swift访问C++枚举
- 12. Swift从UIDatePicker访问年份
- 13. Starting Tab - UITabBarController Swift iOS
- 14. 访问SQL代码
- 15. 访问CakePHP代码
- 16. 访问代码流
- 17. 从Storyboard创建Swift代码
- 18. Segue目前从Appdelegate到UITabBarController在swift中
- 19. 从app.config BasicHttpBinding代码无法访问
- 20. 访问双缓冲从本地代码
- 21. 从代码访问div元素
- 22. 从C#代码中访问F#映射
- 23. 如何从C代码访问Ruby AST?
- 24. 从iPhone代码访问相册
- 25. flex 3从actionscript代码访问主mxml
- 26. 从适配器Java代码访问UserIdentity
- 27. WordPress:从Widget代码访问数据库
- 28. 如何从java代码访问applet?
- 29. 从代码隐藏访问asp:Tablerow风格
- 30. 从java代码中访问Apache的unique_id
如何在Main.storyboard中设置myTabBarController的标识符?我将标题设置为“myTabBarController”...哪些窗口具有此设置?谢谢 –
你可以看到图像的右侧。 –
对不起,我是Swift/iOS编程的新手,当我将上面发布的代码添加到AppDelegate.swift时,TabBarController会在App启动后立即打开,但这不是我想要的。我只想在Button按钮上显示TabBarController。我怎样才能做到这一点? –