如何通过代码在XCode Storyboard中切换视图?

时间:2014-07-17 04:03:32

标签: objective-c xcode input uistoryboard

我想知道如何使用代码切换视图(ViewControllers,如屏幕)。到目前为止,这是我的故事板:http://imgur.com/POLvkbw如果用户输入的凭据正确,我正试图从左上角屏幕切换到左下角屏幕。这是我到目前为止所拥有的:http://pastebin.com/aJMpNNzQ

我完全迷失了如何切换视图,我是XCode的初学者,我只是想制作一个示例应用程序,我喜欢玩游戏。此外,如果您知道如何从创建帐户屏幕中的文本字段获取输入并将它们放在ViewController-m文件中,请说明。

谢谢,朱利安

2 个答案:

答案 0 :(得分:0)

有几种不同的方法可以实现您的目标。最简单的可能是从左上角VC到左下角VC创建另一个“segue”,并命名。

然后在VC的某个地方,你打个电话

[self performSegueWithIdentifier:@"nameOfSegue sender:self];

另一种方法是以编程方式实例化targetVC,如下所示:

UIViewController *targetVC = [self.storyboard instantiateViewControllerWithIdentifier:@"someIdentifier"];

    [UIView transitionFromView:self.view toView:targetVC.view duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
        [self.navigationController pushViewController:targetVC animated:NO];
    }];
}

(请注意,我的示例还包括一个动画过渡,可以更改为许多苹果提供的选项)

在两种情况下,您想要包围的主要概念是您将新的视图控制器“推”到“导航堆栈”(视图控制器数组)上。很多帖子也解释了push和modal segues之间的区别,建议你花时间学习差异。

祝你好运!

答案 1 :(得分:0)

你也可以通过代码切换到下一个..你必须将storyboardID提供给viewcontroller。

并在您要切换时通过此代码推送到该视图。

 UIStoryboard *story = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
 viewController *viewObj = [story instantiateViewControllerWithIdentifier:@"viewController"];

 [self.navigationController pushViewController:viewObj animated:YES];

并且它也可以在不使用prepareForSegue操作的情况下工作。