【问题标题】:How to PushViewController From modalViewController如何从 modalViewController 推送 ViewController
【发布时间】:2013-11-26 12:01:54
【问题描述】:

我有FavouriteViewController,其中我有一个点击按钮的按钮,我正在呈现一个名为LoginViewController(使用情节提要)的视图

在这个页面上(LoginViewController),我再次有按钮,点击我想推动我的视图控制器。

有可能吗?

【问题讨论】:

  • 这会导致不寻常的 UI 体验。但是,如果您想从任何视图控制器推送,则必须将基本视图控制器嵌入到 UINavigationController 中。您可以简单地尝试嵌入您的LoginViewController:在 IB 中选择它,单击编辑器 -> 嵌入 -> 导航控制器。但请先重新考虑您的 UI,因为这看起来不是一个好的解决方案。

标签: ios iphone ipad modalviewcontroller pushviewcontroller


【解决方案1】:

您可以尝试以下代码。它可能会帮助您获得所需的解决方案。

1) 通过编写以下代码来呈现LoginViewController

    LoginViewController *login = [[[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil]autorelease];
    UINavigationController *nc = [[[UINavigationController alloc] initWithRootViewController:login]autorelease];
    nc.navigationBar.hidden = YES;
    [self.navigationController presentModalViewController:nc animated:YES];

2) 现在从LoginViewController,您可以按如下方式推送您的MyviewController

    MyviewController *adss = [[[MyviewController alloc]initWithNibName:@"MyviewController" bundle:nil]autorelease];
    [self.navigationController pushViewController:adss animated:YES];

【讨论】:

  • 应用程序显示崩溃:NSInvalidArgumentException', reason: 'Application tried to present modally an active controller
  • 您需要在FavouriteViewController 中编写第一个代码以呈现LoginViewController.. 你也在这样做吗?
  • 屏幕变黑 写完这个CRLoginWithViewController *login = [[CRLoginWithViewController alloc]init]; UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:login]; nc.navigationBar.hidden = YES; [self.navigationController presentViewController:nc animated:YES completion:Nil];
  • 您没有使用 .xib 文件?
  • 不,我没有使用 .xib 文件,还是同样的问题
【解决方案2】:

使用 UINavigationController

 UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:self.LoginViewController];
 [self presentModalViewController:nav animated:YES];

在此之后,您可以从呈现的视图控制器(LoginViewController)推送任何视图控制器

【讨论】:

  • 这是展示模态视图控制器的方法。 OP 希望从模态呈现的视图控制器中推送视图控制器。 (我认为)
  • 他以模态方式呈现UINavigationController,这是一个可能的答案:)
  • 如果你这么认为,你可以向上回答我的答案:)
【解决方案3】:

在这里

[self.parentViewController.navigationController pushViewController:newViewController animated:YES];

【讨论】:

  • 这实际上会将 VC 推送到父级而不是呈现的 VC
猜你喜欢
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
相关资源
最近更新 更多