我有一个使用情节提要板功能的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];
}
你们觉得怎么样?难道我做错了什么?切换视图的最佳方法是什么?
答案 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];
}