使用代码启动视图控制器时标题和导航栏消失
Title and nav bar disappearing when launching view controller with code
我正在使用以下代码以模态方式启动视图控制器。这个视图控制器不是从头开始创建的。相反,我在情节提要中创建并设计了它的样式,给它起了一个名字,将它嵌入到一个导航控制器中,因此它有一个导航栏,并创建了取消和完成按钮,给它一个标题,然后下面的代码启动它。
问题是,虽然屏幕的大部分功能(例如标签和图像)都显示了,但您可以在故事板中看到的标题和导航栏却消失了。有没有人遇到过这个问题并有解决办法?
我的启动代码 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];
}
尝试使用 PushViewController 而不是实例化:
How to push viewcontroller ( view controller )?
祝你好运
我认为发生的事情是,由于您直接按名称实例化视图控制器,因此它只是从情节提要中获取,而不是将其嵌入导航控制器中。
试试这个:
- 在您的情节提要中,将导航控制器设为情节提要的 initial/root 视图控制器
- 不按名称实例化,而是使用 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];
}
我正在使用以下代码以模态方式启动视图控制器。这个视图控制器不是从头开始创建的。相反,我在情节提要中创建并设计了它的样式,给它起了一个名字,将它嵌入到一个导航控制器中,因此它有一个导航栏,并创建了取消和完成按钮,给它一个标题,然后下面的代码启动它。
问题是,虽然屏幕的大部分功能(例如标签和图像)都显示了,但您可以在故事板中看到的标题和导航栏却消失了。有没有人遇到过这个问题并有解决办法?
我的启动代码 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];
}
尝试使用 PushViewController 而不是实例化:
How to push viewcontroller ( view controller )?
祝你好运
我认为发生的事情是,由于您直接按名称实例化视图控制器,因此它只是从情节提要中获取,而不是将其嵌入导航控制器中。
试试这个:
- 在您的情节提要中,将导航控制器设为情节提要的 initial/root 视图控制器
- 不按名称实例化,而是使用 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];
}