【问题标题】:Navigation Controller between view controller and table view controller视图控制器和表视图控制器之间的导航控制器
【发布时间】:2014-04-10 11:34:01
【问题描述】:

关于如何在 iOS7 中的 Table View 和 View Controller 之间添加导航控制器的任何想法?

一旦我将导航控制器嵌入到表格视图中,应用程序就会崩溃。

没有导航控制器它可以正常工作。但随后表视图变成了视图控制器。这是我正在使用的代码:

[self.navigationController performSegueWithIdentifier:@"setup" sender:self];

这是我的故事板:http://sv.tinypic.com/r/1ztdnb/8

【问题讨论】:

  • 可以更清楚地了解您想要实现的目标吗?为什么要在这两个控制器之间使用UINavigationController?之间是什么意思?
  • 我认为这是让表格视图正常工作的方式吗?因为当我不使用 embed Nav Contoller 时,顶部栏会在 Table View 上消失,它看起来就像一个普通的视图控制器。你可以在这里看到我的故事板:sv.tinypic.com/r/1ztdnb/8
  • 啊哈,所以你所追求的实际上是navigationBar(顶栏)要显示在TableViewController 中,而不是LoginViewController,对吗?然后你打电话给[self.navigationController setNavigationBarHidden:NO animated:YES]; 为你的LoginViewController。这样它仍然会在导航堆栈中,但不会显示导航栏。
  • 所以。我应该只删除中间的导航控制器吗?在 LoginViewController 中添加该代码并直接推送到表视图?我忘记说的另一件事是 LoginViewController 来自它自己的 Table View。
  • 您应该在NavigationController 中嵌入您的第一个视图控制器并为其隐藏导航栏。那么是的,您可以使用segue 或“推送”您的TableViewController

标签: ios ios7 storyboard


【解决方案1】:

好的,我认为你想要的就是这里的 cmets:

  • LoginViewControllerUITableViewController 的子类。不应显示导航栏。
  • ProfileViewController 也是UITableViewController 的子类。应该显示navigationBar
  • 当用户点击LogIn 按钮时,ProfileViewController 应该被“推送”。

所以整个技巧就是让导航栏对一个视图控制器隐藏而对另一个视图控制器可见。这很容易实现 - 只需在 viewWillAppear: 中为每个视图控制器使用 setNavigationBarHidden:animated:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self.navigationController setNavigationBarHidden:YES/NO animated:animated];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2013-05-09
    相关资源
    最近更新 更多