以编程方式更改UITabbarController中的ViewController

时间:2016-10-22 16:05:40

标签: ios uitabbarcontroller

我正在尝试构建与“联系人”相关的应用。在Storyboard中,入口点是UITabbarController,然后是四个UINavigationController,它连接到分离的ViewController,如下所示。

storyboard

在我的第一个tabbarItem中,原始ViewController被称为contactsVC。我将代码用于检测IOS是否允许此应用访问ViewWillAppear中的联系人。如果不允许,我想放置另一个ViewController来显示隐私策略,然后给出按钮以显示IOS对话。

contactsVC.swift:

let privacyViewController = self.storyboard?.instantiateViewController(withIdentifier: "accessForContactsViewController") as! AccessForContactsViewController
self.navigationController?.setViewControllers([privacyViewController], animated: false)

使用上面的代码,我可以将隐私视图控制器嵌入tabbarController。

在privacyViewController中的

,点击按钮后,我的代码如下。

globalContactStore.requestAccess(for: CNEntityType.contacts, completionHandler: {(access, error) -> Void in
            if access {
                    let contactVC = self.storyboard?.instantiateViewController(withIdentifier: "contactsViewController")
                    self.navigationController?.setViewControllers([contactVC!], animated: false)

                }
            } else {

                let gotoSettingsVC = self.storyboard?.instantiateViewController(withIdentifier: "gotoSettingsViewController")
                self.navigationController?.setViewControllers([gotoSettingsVC!], animated: false)
            }
        })

我的目的是,如果允许访问,应用程序会在当前标签栏中显示原始视图控制器,即contactsVC。否则,显示另一个视图控制器。但上面的代码不起作用。

0 个答案:

没有答案