使用代码启动视图控制器时标题和导航栏消失

时间:2015-04-06 20:47:26

标签: ios xcode modalviewcontroller

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

问题在于,虽然屏幕的大部分功能都会显示,例如标签和图像,但您可以在故事板中看到的标题和导航栏消失。有没有人遇到这个问题,并有一个解决方案吗?

我的代码用于启动在故事板中创建的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];
    }

2 个答案:

答案 0 :(得分:1)

我认为正在发生的事情是,由于您直接通过名称实例化视图控制器,因此它只是从故事板中获取而不是将其嵌入到导航控制器中。

试试这个:

  1. 在故事板中,将导航控制器设置为故事板的初始/根视图控制器
  2. 不是按名称实例化,而是使用UIStoryboard的instantiateInitialViewController方法。
  3. 编辑: 根据您在下面的评论,您可能想尝试这样做:

    - (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];
    }
    

答案 1 :(得分:0)

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

How to push viewcontroller ( view controller )?

祝你好运