嵌入导航控制器后应用程序崩溃
Posted
技术标签:
【中文标题】嵌入导航控制器后应用程序崩溃【英文标题】:App crashes after embedding in navigation controller 【发布时间】:2014-02-19 15:50:32 【问题描述】:!(http://s10.postimg.org/8gy1q2rrt/question.png) 当我到达右侧的最后一个视图控制器并按 BACK 按钮时,我返回第一个控制器而不是第二个控制器,我想返回 1 步。 (1>2>3)。所以我在它们之间添加了导航控制器(不知道为什么),当我想去第三个视图控制器时应用程序崩溃了。所有的segues都是PUSH。 这是按钮 #1 代码。 @"tevzeulimenu" 是标签栏控制器的 ID。
- (IBAction)goMenu1:(id)sender
UITabBarController *firstView = [self.storyboard
instantiateViewControllerWithIdentifier:@"tevzeulimenu"];
[self.navigationController pushViewController:firstView animated:YES];
这是 segue 的代码:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([[segue identifier] isEqualToString:@"show1"])
DetailMenuViewController *detailViewController =
[segue destinationViewController];
NSIndexPath *myIndexPath = [self.tab1
indexPathForSelectedRow];
long row = [myIndexPath row];
detailViewController.detailMenu= @[_menu1Images[row],
_menu1Names[row],
_menu1Prices[row],
_menu1Text[row]];
帮助解决这个问题。当按下返回而不是第一个时,我想从右侧的第三个视图控制器(最后一个)返回到第二个。
【问题讨论】:
错误信息是什么? 无法识别的选择器发送到实例 0x8aa1170' 【参考方案1】:你应该使用:
- (IBAction)goMenu1:(id)sender
[self performSegueWithIdentifier:@"show1" sender:self];
当然,您必须在情节提要中添加Segue
,标识符为:show1
。
希望这会有所帮助。
编辑:在上下文中。
【讨论】:
嗨,谢谢你的回复,你能编辑我的代码吗?你已经知道我是新手了。 好的,我是 *** 的新手,但我认为您只需要验证我的答案即可。 它不起作用,因为 a) 我在错误的地方使用了它 b) 它不正确,所以请你编辑我的代码。我用你的代码替换了 if 语句,它没有帮助。 点击按钮时崩溃 您必须在您的storyboard
中添加一个Segue
,其标识符为:show1以上是关于嵌入导航控制器后应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章