Ios Objective-C以编程方式在另一个视图控制器上显示视图控制器

Ios Objective-C以编程方式在另一个视图控制器上显示视图控制器,ios,objective-c,view,controller,Ios,Objective C,View,Controller,我有一个问题。我有一个viewController1,我在其中单击一个按钮。当我点击这个按钮时,我希望它在viewController1(viewController2有点透明)上显示另一个视图控制器(viewController2)。 我想以编程的方式来做这件事。 我试过了,但当我按下按钮时,什么也没发生: Notification *newView = [[Notification alloc]initWithNibName:@"Notification" bundle:nil]; [sel

我有一个问题。我有一个viewController1,我在其中单击一个按钮。当我点击这个按钮时,我希望它在viewController1(viewController2有点透明)上显示另一个视图控制器(viewController2)。 我想以编程的方式来做这件事。 我试过了,但当我按下按钮时,什么也没发生:

Notification *newView = [[Notification alloc]initWithNibName:@"Notification" bundle:nil];
[self.navigationController pushViewController:newView animated:YES];
我重命名了一些变量以使其更清晰。谢谢你的回答

编辑:可能我不够清楚,我希望viewController2位于viewController1的顶部,请尝试以下操作:-

 Notification *newView = [[Notification alloc]initWithNibName:@"Notification" bundle:nil];
  [self presentViewController:newView  animated:YES completion:nil];

你想怎么展示?它是否应带有导航(例如,从屏幕底部或右侧滑入)?另外,请检查您的
navigationController
是否初始化为:
NSLog(@“%@”,self.navigationController)
,如果它是
nil
,请确保您的视图控制器可以访问
navigationCotnroller
`无论它如何显示,最好不要使用动画。此外,输出不是nil。是否执行了button方法中的代码?如果希望viewController1在viewController2下可见,则此方法将不起作用。推送视图控制器会导致旧控制器的视图被推离屏幕并从窗口的视图层次结构中删除。如果这不适用于您,则说明您的代码中存在严重错误。