【问题标题】: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'

标签: ios iphone objective-c ipad ios7


【解决方案1】:

你应该使用:

- (IBAction)goMenu1:(id)sender {
    [self performSegueWithIdentifier:@"show1" sender:self];
} 

当然,您必须在情节提要中添加Segue,标识符为:show1

希望这会有所帮助。

编辑:在上下文中。

【讨论】:

  • 嗨,谢谢你的回复,你能编辑我的代码吗?你已经知道我是新手了。
  • 好的,我是 stackoverflow 的新手,但我认为您只需要验证我的答案即可。
  • 它不起作用,因为 a) 我在错误的地方使用了它 b) 它不正确,所以请你编辑我的代码。我用你的代码替换了 if 语句,它没有帮助。
  • 点击按钮时崩溃
  • 您必须在您的storyboard 中添加一个Segue,其标识符为:show1
猜你喜欢
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多