我正在尝试以编程方式推送ViewController。

代码:

var plus = UIButton()

plus.addTarget(self, action: #selector(plusPressed), for: .touchUpInside)

@objc func plusPressed() {
    print("plus")
    let createJournalVC = CreateJournalViewController()
    self.navigationController?.pushViewController(createJournalVC, animated: true)
}

有效的方法:
  • 按下按钮后,“加号”将打印到控制台。

  • 不起作用:
  • 没有推送ViewController。

  • 详细信息
  • 我正在使用导航控制器和标签栏控制器。
  • 我只做程序化的故事板。
  • 没有错误打印到控制台,实际上没有任何反应。
  • 最佳答案

    如果TabBarController在NavigationController之后,则NavigationController可以变为nil。您应该先放置TabBarController,然后将每个与每个选项卡相关的ViewController放入自己的NavigationController中。

    故事板:

    ios - 以编程方式推送ViewController-LMLPHP

    以编程方式:

    您需要像这样创建TabBarController ...

    window = UIWindow(frame: UIScreen.main.bounds)
    let tabCon = UITabBarController()
    let navCon1 = UINavigationController(rootViewController: ViewController())
    let navCon2 = UINavigationController(rootViewController: CreateJournalViewController())
    let navCon3 = UINavigationController(rootViewController: AnotherViewController())
    tabCon.viewControllers = [navCon1, navCon2, navCon3]
    tabCon.tabBar.items?[0].title = NSLocalizedString("VC", comment: "comment")
    tabCon.tabBar.items?[1].title = NSLocalizedString("CJV", comment: "comment")
    tabCon.tabBar.items?[2].title = NSLocalizedString("AVC", comment: "comment")
    window?.rootViewController = tabCon
    window?.makeKeyAndVisible()
    

    关于ios - 以编程方式推送ViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53371608/

    10-11 20:07
    查看更多