Ios 我可以从另一个UIViewController推送UINavigationController吗

Ios 我可以从另一个UIViewController推送UINavigationController吗,ios,uinavigationcontroller,Ios,Uinavigationcontroller,我认为这是一个愚蠢的问题,但我试图找到一个解决我的情况,但我失败了 在登录后,我用登录屏幕启动了应用程序。我展示了MainUIViewController,在main中我有许多按钮,其中一个按钮用于打开新的UINavigationController。。可能吗 [window addSubview:[navigationController view]]; 如果我将导航设置为主视图,则它的工作是,而不是从另一个UIViewController 我也试过了 - (id)initWithNibNa

我认为这是一个愚蠢的问题,但我试图找到一个解决我的情况,但我失败了

在登录后,我用登录屏幕启动了应用程序。我展示了MainUIViewController,在main中我有许多按钮,其中一个按钮用于打开新的UINavigationController。。可能吗

[window addSubview:[navigationController view]];
如果我将导航设置为主视图,则它的工作是,而不是从另一个UIViewController

我也试过了

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        [self.view addSubview:[self.navController view]];// = [self.navController view];
    }
     return self;
}
但失败了


感谢您的建议

MainUIViewController是窗口的根视图控制器吗?如果是这样,为什么不将其添加到UINavigationController中,然后使导航控制器成为窗口的根视图控制器?如果您关心的是MainUIViewController不需要导航栏,那么可以使用UINavigationController上的setNavigationBarHidden:方法很容易地隐藏它。然后可以在后续视图控制器上取消隐藏它。这样,您就可以从导航控制器开始,只需将新的视图控制器推到堆栈上。

我个人会将MainView设置为显示NavigationController,然后在加载第一个视图时检查用户是否登录,如果他们没有在没有动画的模式下显示登录屏幕,那么这是用户看到的第一个视图。然后,当用户登录后,您可以取消登录模式。也许是一个更好的方法?谢谢,当我失败时,我在你的建议中想。但是我仍然试图找到一个解决我的问题的方法,如果这个方法在IOS上适用的话。这个想法仅仅是隐藏/显示导航栏吗?我真的不记得这个问题了,但是在5年之后,这个问题得到了很多反对票。。。有些人怎么会是真正的圣德