【发布时间】:2014-07-26 01:28:12
【问题描述】:
我正在尝试使用委托从AppDelegate 调用ViewController 的segue。我想确保在执行 segue 之前存储了 xmppRoster。有一个错误说:
“由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'Receiver () has no segue with identifier 'segueForList''"
我确定 segueForList 是正确的 segue 标识符,因为代码
[self performSegueWithIdentifier:@"segueForList" sender:self] 在不使用委托时有效。
segue 内置在故事板中并连接到 ViewController,我现在无法发布图像,因为我的声誉不够,对不起
AppDelegate.h:
@protocol friendListSegue
- (void) ListSegue;
@end
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (assign,nonatomic) id<friendListSegue> delegate;
@end
在AppDelegate.m中,系统完成存储后会自动调用该方法:
- (void)xmppRosterDidEndPopulating:(XMPPRoster *)sender
{
ViewController * view0=[[ViewController alloc] init];
self.delegate = view0;
[self.delegate ListSegue];
NSLog(@"didStored");
}
ViewController.m:
- (void) ListSegue{
NSLog(@"segue_List");
[self performSegueWithIdentifier:@"segueForList" sender:self];
}
【问题讨论】:
-
ViewController 是在哪里制作的?在故事板或 xib 中?在代码中?
-
Segues 在故事板中工作。在这里,您只是在代码中初始化一个视图控制器,并期望它的行为就像在故事板中一样。
-
segue内置在storyboard中并连接到ViewController,我现在无法发布图片,因为我的声誉不够,sorry
标签: ios delegates segue appdelegate