Receiver(<ViewController:>)没有标识符为'showAlerting'的segue
segue运行,但应用程序与上述错误崩溃。 为什么我得到这个no segue with identifier
消息的no segue with identifier
? 我定义了segue标识符。
这是viewDidAppear方法
- (void)viewDidAppear:(BOOL)animated { [self performSegueWithIdentifier:@"showAlerting" sender:self]; } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"showAlerting"]) { NSLog(@"Logging showAlerting"); } }
我得到了这些日志消息
2015-03-28 20:04:33.025 xxxx[3684:741007] Logging showAlerting 2015-03-28 20:04:33.046 xxxx[3684:741007] xxxxxxxx,, 2015-03-28 20:04:33.111 xxxx[3684:741007] lat: xxx 2015-03-28 20:04:33.112 xxxx[3684:741007] lon: xxx 2015-03-28 20:04:33.798 xxxx[3684:741007] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<ViewController: 0x17d38930>) has no segue with identifier 'showAlerting'' *** First throw call stack: (0x2c1a15a7 0x39d87c77 0x2f9830df 0xebde7 0x2f6bb37b 0x2f6bb837 0x2f9701bb 0x2fd00e89 0x2f9726ff 0x2f7b5baf 0x2f7b5a4f 0x2f7b5525 0x2f6d9201 0x2f6d9117 0x2f0d363b 0x276187 0x279e9d 0x2c167891 0x2c165fb1 0x2c0b2b51 0x2c0b2963 0x335f11a9 0x2f704c91 0xea5f5 0x3a330aaf) libc++abi.dylib: terminating with uncaught exception of type NSException
问题是在故事板中有两个相同类的实例; 一个与segue,一个没有。 正在被调查的控制者需要成为一个不同于你正在从中继续的人。
当您尝试访问其segue时,您的视图控制器不完全加载。 所以调用super并完成加载过程,然后调用prepareForSegue。
-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [self performSegueWithIdentifier:@"showAlerting" sender:self]; }