Ios5 未调用prepareforsgue
我正在使用模板主详细信息应用程序。我已经从SplitViewController添加了一个模式segue,并给它一个标识符“DisplayLoginView” 我从我的detailViewController调用以下命令:Ios5 未调用prepareforsgue,ios5,uisplitviewcontroller,segue,uistoryboard,Ios5,Uisplitviewcontroller,Segue,Uistoryboard,我正在使用模板主详细信息应用程序。我已经从SplitViewController添加了一个模式segue,并给它一个标识符“DisplayLoginView” 我从我的detailViewController调用以下命令: - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:YES]; [self.splitViewController performSegueWithIdentifier:@"DisplayLo
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES];
[self.splitViewController performSegueWithIdentifier:@"DisplayLoginView" sender:self.splitViewController];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Source Controller = %@", [segue sourceViewController]);
NSLog(@"Destination Controller = %@", [segue destinationViewController]);
NSLog(@"Segue Identifier = %@", [segue identifier]);
if ([segue.identifier isEqualToString:@"DisplayLoginView"])
{
PrometheusLoginViewController *loginViewController = (PrometheusLoginViewController *)segue.destinationViewController;
loginViewController.delegate = self;
}
}
我还在detailViewController中定义了prepareForSegue方法:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES];
[self.splitViewController performSegueWithIdentifier:@"DisplayLoginView" sender:self.splitViewController];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Source Controller = %@", [segue sourceViewController]);
NSLog(@"Destination Controller = %@", [segue destinationViewController]);
NSLog(@"Segue Identifier = %@", [segue identifier]);
if ([segue.identifier isEqualToString:@"DisplayLoginView"])
{
PrometheusLoginViewController *loginViewController = (PrometheusLoginViewController *)segue.destinationViewController;
loginViewController.delegate = self;
}
}
知道为什么不调用它吗?您要求splitViewController执行该步骤,但您在detailViewController中定义了prepareForSegue。它们必须在同一个对象上才能触发PrepareForsgue。啊,愚蠢的错误。从另一个线程中,我认为我必须从splitViewController中呈现它,否则它将无法工作。将segue从detailViewController更改为go,并将其更改为[SelfPerformsgueWithIdentifier:@“DisplayLoginView”发送方:self];它是有效的。谢谢很好,你真的发布了有用的东西。将使用此选项使用segues在视图之间存储数据。