ios - 以编程方式在 Swift 中的选项卡之间切换

标签 ios xcode swift uitabbarcontroller viewcontroller

我需要编写一些代码来在 iOS 应用程序启动时将 View 切换到另一个选项卡(因此,例如,默认显示第二个选项卡而不是第一个选项卡)。

我是 Swift 的新手,并且已经解决了以下问题:

  • 代码应该放在第一个选项卡的 ViewController 的 override func viewDidLoad() 函数中。

  • 以下代码显示了第二个 ViewController,但底部没有标签栏(vcOptions 是第二个 ViewController 标签项:

let vc : AnyObject! = self.storyboard.instantiateViewControllerWithIdentifier("vcOptions")
self.showViewController(vc as UIViewController, sender: vc)

我认为答案可能在于使用 UITabbarController.selectedIndex = 1,但不太确定如何实现它。

最佳答案

如果你的 window rootViewControllerUITabbarController(在大多数情况下),那么你可以访问 tabbar didFinishLaunchingWithOptionsAppDelegate 文件中。

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
    // Override point for customization after application launch.

    if let tabBarController = self.window!.rootViewController as? UITabBarController {
        tabBarController.selectedIndex = 1
    }

    return true
}

这将打开带有 selectedIndex 中给定 (1) 的 index 的选项卡。

如果您在 firstViewControllerviewDidLoad 中执行此操作,则需要通过标志或其他方式进行管理以跟踪所选选项卡。在 AppDelegate 文件的 didFinishLaunchingWithOptionsrootViewController 自定义类 viewDidLoad 中执行此操作的最佳位置。

关于ios - 以编程方式在 Swift 中的选项卡之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325923/

相关文章:

swift - 通过共享表从 NSData 共享 PDF

ios - 如何在我的 MPMoviePlayerController 实例中添加音量控制

Objective-C - 在 ABPeoplePickerNavigationController 中锁定旋转

ios - 如何以编程方式查找 swift 版本?

ios - 将数据从磁盘发送到服务器而不加载到 iOS 上的 ram

c++ - 释放内存问题

xcode - 无法为 AppStore-Distribution 创建 App Store 配置文件

swift - iOS 10 用户通知框架。日历触发器

ios - UIWebView 路径取决于之前按下的按钮 Xcode

ios - 如何为不同的屏幕尺寸设置不同的自动布局约束