使用Segue更改故事板视图

时间:2014-05-31 22:45:43

标签: ios xcode cocoa-touch segue viewcontroller

我有以下代码检查与我的服务器的连接,并且根据我希望它在没有找到连接时更改视图。

NSString *connect = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://myserver.com"] encoding:NSUTF8StringEncoding error:nil];

if (connect == NULL) {
    [self performSegueWithIdentifier:@"network_failure" sender:self];
} else {
    // My other code here
}

我的问题是它不会改变视图。我在两个视图之间添加了一个故事板segue,其标识符为network_failure。我没有导航控制器或类似的东西,这是一个问题吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

不,这不是问题。

首先,在ObjectiveC存在nil,这是一个面向对象的NULL 。你必须使用它。所以:

if(connect == nil)

或更好:

if(!connect)

因为nilNULL不一样,可能您的代码不会输入if范围

您可以通过简单的断点发现这一点。

ANYWAY:

请务必从2视图控制器设置触发器segue(线路),并使用名称network_failure (这不是最佳名称)。应该是View1ToView2)以及模态modal而不是push,因为你没有NavigationController

答案 1 :(得分:0)

首先你需要使用nil而不是像Matteo Gobbi所说的那样。如果你没有导航控制器,你应该调用第二个viewController。首先,为第二个VC创建一个类,然后将其导入firstVC.m,然后需要将相同的类设置为storyboard中的第二个VC。之后你建立连接,选择模态并给它一个很好的segue标识符。然后,您可以实现以下内容以查看第二个VC

if ([segue.identifier isEqualToString:@"(yourSegueIdentifier)"]) {
    [self performSegueWithIdentifier:@"(yourSegueIdentifier)" sender:self];
}

试一试(未经测试的代码)。

相关问题