【问题标题】:How to use multiple UINavgationController within one project in iOS using swift如何使用swift在iOS的一个项目中使用多个UINavgationController
【发布时间】:2016-10-08 07:51:45
【问题描述】:

我使用Xib 代替情节提要,并在我的AppDelegate 中使用此代码在我的项目中执行导航

var nav = UINavigationController()
let FirstVC = HomeScreenVIewController(nibName: "HomeScreenVIewController", bundle: nil) as HomeScreenVIewController
nav = UINavigationController(rootViewController: FirstVC)
nav.navigationBarHidden = true
self.window?.rootViewController = nav
self.window?.makeKeyAndVisible()    
nav.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)

要在按钮上从一个视图导航到另一个视图,我正在使用此代码

let NextVc = RegistrationStepOneViewController(nibName: "RegistrationStepOneViewController", bundle: nil) as RegistrationStepOneViewController
appDelegate.nav.pushViewController(NextVc, animated: true)

此导航适用于所有注册流程步骤。注册完成后,有一个仪表板屏幕,用户无法从该屏幕导航回注册步骤(显然)。

现在我想要另一个导航从仪表板开始,并在应用程序中走得更远。我怎样才能做到这一点 ?

提前致谢:-)

【问题讨论】:

  • 保留一个导航控制器并从其viewControllers 属性数组中删除所有先前的条目可能是最简单的
  • @Paulw11 你能举例说明一下吗

标签: ios swift uinavigationcontroller xib


【解决方案1】:

您可以使用 setViewControllers: animated: 方法将当前导航堆栈替换为您想要的任何堆栈。

self.navigationController?.setViewControllers([yourNewRootVC], animated: true)

例如,上面会为您提供一个新的根控制器,并会炸毁您当前的导航堆栈。

话虽如此,根据您所描述的情况,我建议以主视图控制器作为导航 VC 的根目录启动应用程序,然后在其上显示(动画:false)注册流程。然后,您只需在注册完成后将其关闭,或者如果注册已经发生,则根本不提供它。希望这是有道理的!

【讨论】:

  • 您能否指导我了解确切的语法,因为它给了我错误。我正在使用 swift 2.0
【解决方案2】:

你可以这样做,

 let vc: UIViewController = UIViewController()
    let view: UIView = UIView(frame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height))
    vc.view = view
    vc.view.backgroundColor = UIColor.orangeColor()
    let arr: [UIViewController] = [vc as UIViewController]
    self.navigationController!.setViewControllers(arr, animated: true)

您可以将viewcontrollers 的数组设置为导航控制器。您可以向该 arr 添加多个数组,并且可以使用相同的导航控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2019-03-23
    • 2021-02-21
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多