从 iOS 中呈现的视图控制器推送视图

2023-12-30

简而言之 :如何从呈现的 ViewController PushViewController ?

简单来说 :

I have MainViewController,其中我有一个单击按钮的按钮,我正在呈现一个名为的视图LoginViewController.

在本页 (LoginViewController),我又得到了button,点击它后,我尝试推送我的视图控制器(称为HomeViewController)它不推动。

这是我的代码片段,

MainViewController.m

- (IBAction)LoginClicked:(id)sender {
    LoginViewController *vc = [[LoginViewController alloc] init];
    [self presentViewController:vc animated:YES completion:nil];
}

LoginViewController.m

- (IBAction)buttonActionMethodOnLoginView:(id)sender{
     NSLog(@"viewControllers %@",APPDELEGATE.nav.viewControllers);
     //LoginViewController is not in this array
     HomeViewController *obj = [[HomeViewController alloc] init];
     [self.navigationController pushViewController:obj animated:YES];
}

但这对我不起作用。另外,我打印了a stack of view controllers before pushed,但它没有LoginViewController。所以,无需添加LoginViewController into a stack of view controllers, 我怎么能够pushed to HomeViewController from LoginViewController ?

当我从HomeViewController, then LoginViewController应该打开..

是否可以使用这个单一的NavigationController?

Note:-在这里,我刚刚举了一个使用 Login、Home 和 Main ViewController 的例子。但我想把它放到其他屏幕上。


你好,当您展示登录视图控制器时,只需展示一个导航控制器,例如:

LoginVC *loginVCObj =[[LoginVC alloc]initWithNibName:@"LoginVC" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:loginVCObj];
[self presentViewController:nav animated:YES completion:nil];

现在你的 PresentedViewController 是一个 navigtioncontroller 现在您只需推送到您的 Home VC

  HomeViewController *obj = [[HomeViewController alloc] init];
 [self.navigationController pushViewController:obj animated:YES];

希望对您有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 iOS 中呈现的视图控制器推送视图 的相关文章

随机推荐