【问题标题】:Using Tab Bar Controller and Navigation Controller使用标签栏控制器和导航控制器
【发布时间】:2016-04-19 12:56:49
【问题描述】:

我想在显示的视图控制器之间导航。我不想使用segues。

当我尝试通过单击按钮将表单 FirstViewController 导航到 SecondViewController 时:

 let next = self.storyboard?.instantiateViewControllerWithIdentifier("secondViewController") as! SecondViewController

 self.presentViewController(next, animated: true, completion: nil)

我明白了:

警告:尝试在其视图不在窗口层次结构中的 FirstViewController 上呈现 SecondViewController!

任何想法如何在两者之间插入导航控制器?

编辑:图中是TabBarController而不是TabViewController

我从名为“A-Controller”的第一场景控制器导航到第一视图控制器:

@IBAction func navigateToFirstViewController(sender: AnyObject) {
    let next = self.storyboard?.instantiateViewControllerWithIdentifier("firstViewController") as! FirstViewController
    self.presentViewController(next, animated: true, completion: nil)
}

图中没有显示。

【问题讨论】:

  • 什么样的控制器在处理“第一场景”及其按钮?代码如何呈现“第一个视图控制器”?
  • 我没有在图中包含 First Scene 的控制器。假设它是 A 控制器,然后在该控制器中我使用一个按钮切换到 firstViewController @PhillipMills
  • 请使用实现“切换到 firstViewController”的代码更新您的问题。错误消息表明 FirstViewController 的视图使用方式存在异常。
  • 好的,现在更新了。 @菲利普米尔斯

标签: ios swift uinavigationcontroller uitabbarcontroller


【解决方案1】:

如果您尝试在 TabBarController 上呈现模态视图,那么:

let next = self.storyboard?.instantiateViewControllerWithIdentifier("secondViewController") as! UIViewController
self.tabBarController.presentViewController(next, animated: true, completion: nil)

【讨论】:

    【解决方案2】:

    警告:尝试在视图不在窗口层次结构中的 FirstViewController 上呈现 SecondViewController!

    原来这个错误意味着在我的第一个视图出现并准备好后,我必须从第一个视图导航到第二个视图。

    将导航线放在 viewDidAppear() 函数中解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      相关资源
      最近更新 更多