如何从一个视图控制器导航到另一个视图控制器

Posted

技术标签:

【中文标题】如何从一个视图控制器导航到另一个视图控制器【英文标题】:How to navigate From one view controller to other 【发布时间】:2014-06-13 06:21:20 【问题描述】:

我在从一个视图控制器导航到另一个视图控制器时遇到问题。

我正在做的是如果假设有 3 个视图控制器 A、B、C,然后从 A 我推到 B。

但在 B 视图中确实加载了一个 api,如果状态码不是 200,我将推送到 C。

但我的问题是只出现了 C 的导航标题,一切都是 B 的视图。

代码如下:

 NSLog(@"~~~~~ Status code: %d", [urlResponse statusCode]);

      NSLog(@"Error: %@", [NSHTTPURLResponse localizedStringForStatusCode: urlResponse.statusCode]);

    if([urlResponse statusCode]!=200)
    



      TermsAndConditions * view = [self.storyboard instantiateViewControllerWithIdentifier:@"TermsAndConditions"];



        self.navigationController.navigationBar.topItem.title = @"";
        [self.navigationController pushViewController:view animated:YES];

【问题讨论】:

问题不在于您共享的代码。如果这是一个“我不知道出了什么问题”的问题,您应该分享所有相关代码。另外,在你下次提问之前,尽量缩小你的问题范围。 提供相关代码,因为您提供的代码是正确的,而且屏幕截图也可以。 嘿!你在用故事板吗??? 是的,我的故事板。 如何上传截图 【参考方案1】:

只需从按钮或任何其他对象拖动到 stroyboard 中的另一个 viewController。这是简单的方法。

另一种方法是

导入 viewController 示例:#include "SecondViewController"

然后在你想要导航的.m文件中定义它

 SecondViewController *tempVC =[[SecondViewController alloc]
 initWithNibName:@"homeViewController" bundle:nil];
 [self.navigationController pushViewController:tempVC animated:YES];

但是这里pushViewController不携带导航属性如果你需要在SecondViewController这样写的导航属性

 SecondViewController *tempVC =[[SecondViewController alloc]
 initWithNibName:@"homeViewController" bundle:nil];
 [self.navigationController presentedViewController:tempVC animated:YES]

它绝对适合你。

【讨论】:

它对我有用。但是从那里我需要转到主页视图控制器。意味着我无法从那个呈现的视图控制器中推送。 你只是混淆了。 k 告诉我你用什么来导航故事板或 xib 或以编程方式。 if([urlResponse statusCode]!=200) 这意味着如果代码不等于 200,则需要您使用另一个视图控制器,只需编辑它 if([urlResponse statusCode]=200)跨度> 如果状态码不是200,我想去另一个视图控制器

以上是关于如何从一个视图控制器导航到另一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何在单击按钮时从一个视图控制器导航到另一个视图控制器?

如何从 Appdelegate 导航到另一个视图控制器

如何从标签栏视图控制器切换到另一个作为导航控制器子视图的视图

随着导航栏颜色的变化,从一个视图控制器转换到另一个视图控制器

如何通过单击按钮在 Swift UI 中从一个视图导航到另一个视图

没有导航控制器堆栈的视图控制器从一个到另一个的动画转换