Ios Nib视图不显示菜单或导航栏

Ios Nib视图不显示菜单或导航栏,ios,objective-c,Ios,Objective C,在我正在使用的应用程序中,我有一个profile选项卡,用户可以在其中查看与其帐户相关的所有信息,其中一个字段是他们就读的大学,字段旁边有一个按钮,用户可以从表视图中选择他们就读的大学。以下是纵断面图的屏幕截图: 当我点击选择按钮时,它会将我带到另一个视图,该视图包含大学列表,一旦我选择了一个,它会将我带回到纵断面图,但当我返回到纵断面图时,导航栏和按钮菜单丢失: 下面是我用来在视图控制器之间切换的代码: ProfileView * vc = [[ProfileView alloc] ini

在我正在使用的应用程序中,我有一个profile选项卡,用户可以在其中查看与其帐户相关的所有信息,其中一个字段是他们就读的大学,字段旁边有一个按钮,用户可以从表视图中选择他们就读的大学。以下是纵断面图的屏幕截图:

当我点击选择按钮时,它会将我带到另一个视图,该视图包含大学列表,一旦我选择了一个,它会将我带回到纵断面图,但当我返回到纵断面图时,导航栏和按钮菜单丢失:

下面是我用来在视图控制器之间切换的代码:

ProfileView * vc = [[ProfileView alloc] init];

    [self presentViewController:vc animated:YES completion:^{
    }];

有人知道为什么会发生这种情况吗?

ProfileView
的子类
UIView
还是
UIViewController
?在后一种情况下,应将其重命名为
ProfileViewController
,因为当前名称表明它是一个自定义视图。否则,如注释所示,如果要使用以下方法,则需要为该视图创建UIViewController:

显示详细视图控制器:

您使用的是
[self-presentViewController]
,它将通过从屏幕底部滑动视图控制器来显示视图控制器。完成后,可以使用
[vc dismissViewControllerAnimated:completion]
解除该操作。如果希望包含导航栏,可以:

  • 将UINavigationBar添加到显示的视图控制器的视图中
  • 将显示的视图控制器放入导航控制器中
对于后一种情况:

[self presentViewController:[[UINavigationController alloc] 
    initWithRootViewController:vc]];
或者,可以使用以下命令将下一个视图控制器推送到当前导航控制器的堆栈上:

[self.navigationController pushViewController:vc animated:YES];
。这将从右侧滑动视图控制器

最后,对于一些替代方法,如果您希望可以使用以下方式显示ViewController和/或view:

  • [UIView transitionWithView…]
  • 催眠

。但是,根据您在问题中描述的要求,不应该需要这些

你应该提供一个视图控制器,而不是视图。它是一个UIViewController,我最终使用了dismissViewControllerAnimated,谢谢你的帮助!