【问题标题】:Navigating from ViewController to another ViewController从 ViewController 导航到另一个 ViewController
【发布时间】:2020-11-16 22:50:14
【问题描述】:

我是 iOS 开发的新手。我有一个已经开发的应用程序。我进行了更改,但无法使用 push/replace/present 以及是否以编程方式使用 hero 包从 ViewController 导航到另一个 ViewController。它们都不起作用!

我有两个故事板,每个都有多个 ViewController。

这就是我在 AppDelegate 中所做的:

self.window?.rootViewController = UIStoryboard(name: "Auth", bundle: nil).instantiateInitialViewController()
self.window?.makeKeyAndVisible()

这就是我的导航方式:

guard let registerViewController = UIStoryboard(name: "Auth", bundle: .main)
                                   .instantiateViewController(withIdentifier: "RegisterViewController")
                                   as? RegisterViewController else { return }
self.navigationController?.pushViewController(registerViewController, animated: true)

我不想使用 Storyboard 链接链接这些 ViewController,因为有时我需要在移动到另一个 ViewController 之前根据条件进行异步操作或导航

我在这里做错了吗?

【问题讨论】:

  • 确保您的 navigationController 不是 nil。你应该把它分配到某个地方
  • 谢谢@vpoltave,你是对的!

标签: ios swift uinavigationcontroller


【解决方案1】:
**To navigate from one controller to another, you have to make navigation controller as a rootViewController as shown below:-** 

    let authVC = UIStoryboard(name: "Auth", bundle: nil).instantiateInitialViewController()
    let nav = UINavigationController(rootViewController: authVC)
    self.window?.rootViewController = nav
    self.window?.makeKeyAndVisible()

【讨论】:

  • 感谢@Nexus,如果您的情节提要中没有 NavigationController,那也可以使用
【解决方案2】:

我通过在Auth 故事板中添加NavigationController 解决了这个问题,或者以编程方式使用UINavgiationController 作为@Nexus 的答案。

【讨论】:

  • 您应该删除此答案并将 Nexus 答案设置为已接受!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 2021-01-31
相关资源
最近更新 更多