2015-04-06 51 views
0

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

问题是,尽管屏幕的大部分功能都显示出来,例如标签和图像,但您可以在故事板中看到的标题和导航栏消失。有没有人遇到过这个问题,并对其进行修复?

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

您需要实例和现在的导航控制器,不IDEditVC。 – rdelmar

+0

您链接的问题没有被接受的答案。如果您认为这是重复的,则必须展示实际回答的问题,而不是回答不适用于海报的问题。 – user1904273

+0

只是因为OP没有正确实施它。这是做到这一点的正确方法。 – rdelmar

回答

1

我觉得发生了什么事是,既然你是直接通过名称实例化视图控制器,它变得只是从故事板而不是嵌入导航控制器。

试试这个:

  1. 在你的故事板,使导航控制器的初始/根视图控制器故事板
  2. 不是按名称实例化的,使用UIStoryboard的instantiateInitialViewController方法。

编辑: 根据您在下面的意见,你可能想试试这个:

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

这个应用程序有很多屏幕和一个完全不同的控制器是初始视图控制器。 – user1904273

+0

然后打破你模态展示到它自己的故事板的视图控制器,或者在代码中实例化一个UINavigationController,并在其中嵌入你的视图控制器 – MahatmaManic

+0

我如何实例化导航控制器而不是常规的vc?只要给它一个名字并替换名字? – user1904273

相关问题