故事板和切换视图?

时间:2011-11-29 23:03:11

标签: iphone objective-c ios xcode xcode4

我有一个使用情节提要板功能的iPad应用程序,然后我有一个单独的.xib文件用于另一个视图。我可以切换到单独的视图及其罚款:

-(IBAction)SecondView:(id)sender{

    SecondView *Second = [[SecondView alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:Second animated:NO];

}

但是当我在第二个视图中并尝试返回时,我只使用第一个视图控制器执行所有操作,但它只是进入黑屏:

-(IBAction)FirstView:(id)sender{

    FirstView *First = [[FirstView alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:First animated:NO];

}

你们觉得怎么样?难道我做错了什么?切换视图的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

initWithNibName:bundle用于加载nib或xib文件。

如果要从故事板加载,则需要使用

    FirstView *First= [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER"];

IDENTIFIER在您的故事板中定义,它位于右侧的Utilities,Attributes Inspector中。

然而您真正的问题是您根本不应该从故事板加载。你应该只是打电话

[self dismissModalViewControllerAnimated:YES];

该调用将清除您用于放置模态视图控制器的presentModalViewController:animated:

答案 1 :(得分:0)

您使用SecondView提交了presentModalViewController:animated:,因此您需要使用dismissModalViewControllerAnimated:将其解雇。

- (IBAction)FirstView:(id)sender
{
    [self dismissModalViewControllerAnimated:YES];
}