【问题标题】:Title and nav bar disappearing when launching view controller with code [duplicate]使用代码启动视图控制器时标题和导航栏消失[重复]
【发布时间】:2015-06-11 07:56:13
【问题描述】:

我正在使用以下代码以模态方式启动视图控制器。此视图控制器不是从头开始创建的。相反,我在情节提要中创建并设置样式,给它命名,将其嵌入到导航控制器中,使其具有导航栏并创建取消和完成按钮,给它一个标题,下面的代码将启动它。

问题在于,虽然屏幕的大部分功能(例如标签和图像)都会显示出来,但您可以在情节提要中看到的标题和导航栏却消失了。有没有人遇到过这个问题并有解决办法?

我在故事板中创建的启动 VC 的代码。

- (void) editView:(id) sender
{
    NSLog(@"launch button pressed");
    UIStoryboard *storyBoard = self.storyboard;
    IDEditVC *editVC =
    [storyBoard instantiateViewControllerWithIdentifier:@"editvc"];
editVC.item = _item;
[self presentModalViewController:editVC animated:YES];
    }

【问题讨论】:

  • 您需要实例化并呈现导航控制器,而不是 IDEditVC。
  • 您链接到的问题没有被接受的答案。如果您认为这是重复的,您必须展示一个实际已回答的问题,而不是答案不适用于海报的地方。
  • 只是因为 OP 没有正确实现它。这才是正确的做法。
  • 所以你知道如何正确实现它,但那张海报不知道?您愿意分享您的非凡知识吗?
  • 我确实在该答案中分享了我的知识。正如我在这里的第一条评论中所说,您需要实例化导航控制器(给它一个标识符)并呈现它。

标签: ios xcode modalviewcontroller


【解决方案1】:

我认为发生的事情是,由于您直接按名称实例化视图控制器,因此它只是从情节提要中获取该名称,而不是将其嵌入到导航控制器中。

试试这个:

  1. 在情节提要中,将导航控制器设置为情节提要的初始/根视图控制器
  2. 不要按名称进行实例化,而是使用 UIStoryboard 的 instantiateInitialViewController 方法。

编辑: 根据您的以下 cmets,您可能想试试这个:

- (void) editView:(id) sender
{
    NSLog(@"launch button pressed");
    UIStoryboard *storyBoard = self.storyboard;
    IDEditVC *editVC =
    [storyBoard instantiateViewControllerWithIdentifier:@"editvc"];
    editVC.item = _item;

    UINavigationController *nav = [UINavigationController alloc] initWithRootViewController: IDEditVC];
    // Do whatever setup you want to here for your title bar, etc
    [self presentModalViewController:nav animated:YES];
}

【讨论】:

  • 这个应用有很多屏幕,一个完全不同的控制器是初始视图控制器。
  • 然后将您正在模态呈现的视图控制器分解到它自己的故事板中,或者在代码中实例化 UINavigationController 并将您的视图控制器嵌入其中
  • 我将如何实例化导航控制器而不是常规 vc?只需给它一个名称并替换名称即可?
  • 我尝试给导航控制器命名为“editvcnav”,并在上面的代码中用它代替了editvc,但在模拟器中崩溃了。
  • 我在上面编辑了我的答案以解释我的意思
【解决方案2】:

尝试使用 PushViewController 而不是实例化:

How to push viewcontroller ( view controller )?

祝你好运

【讨论】:

  • 推送视图控制器适用于导航按钮,但标题仍然不显示。
  • 好吧,你总是可以设置标题,但我看到你已经有了答案;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 2017-07-24
  • 2017-02-11
相关资源
最近更新 更多