![](/img/trans.png)
[英]My view controller in storyboard will not connect to the viewcontroller.h file or the .m
[英]How to switch back to the Main view i.e ViewController.h" what is the nib name for MainStoryboard.storyboard?
我使用以下代码从主视图( ViewController.h
)切换到另一个视图( TouchViewController
),然后类似地从该视图切换到下一个视图( QuestionsViewController
)。
我如何从这里返回主视图? 即MainStoryboard.storyboard
initWithNibName
的值是什么?
- (IBAction)startGame:(UIButton *)sender {
TouchViewController *second = [[TouchViewController alloc] initWithNibName:@"TouchViewController" bundle:nil];
[self presentViewController:second animated:YES completion:nil];
}
和
- (IBAction)selectTopic:(UIButton *)sender {
NSString *category = [[sender titleLabel] text];
[[NSUserDefaults standardUserDefaults] setObject:category forKey:@"MyKey"];
QuestionsViewController *second = [[QuestionsViewController alloc] initWithNibName:@"QuestionsViewController" bundle:nil];
[self presentViewController:second animated:YES completion:nil];
}
现在回到主视图,我有一个问题,即
- (IBAction)backtoMainMenu:(id)sender {
ViewController *second = [[ViewController alloc]initWithNibName:@"MainStoryboard.storyboard" bundle:nil];
[self presentViewController:second animated:YES completion:nil];
}
此时,应用程序崩溃了! 我想这是因为不能使用initWithNibName:@"MainStoryboard.storyboard"
但是ViewController
没有任何其他xib
文件-那我该怎么办?
首先, storyboard
提要不能用作xib文件,因为它们不是一回事。 其次,您有一个视图控制器,该视图控制器提供了一个视图控制器,该视图控制器还提供了一个视图控制器,因此您可以从第三个视图控制器中执行以下操作:
[self.presentingViewController.presentingViewController
void)dismissViewControllerAnimated:YES completion:nil];
这是最快的方法,但是它并不是真正可重用的,如果您的视图控制器层次结构复杂得多,而不是像这样那样丑陋,其他解决方案可以是委托或通知。
这只是一条建议,通常,当您想返回上一个屏幕时,您并不需要创建新的视图控制器(在尝试使用backToMainMenu
方法时,您只想删除所有视图控制器(屏幕)直到您到达所需的屏幕。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.