我一直在谷歌搜索并在整个堆栈交换中搜索正确的答案,但我似乎找不到它。我所拥有的是通过弹出框 Segue 呈现的弹出框视图,当在弹出框视图内单击按钮时,我希望它被关闭并显示 UIAlert。这是迄今为止我从其他答案中收集的代码,但不起作用:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"popOverSegue"]) {
if ([segue isKindOfClass:[UIStoryboardPopoverSegue class]]) {
UIStoryboardPopoverSegue *popoverSegue = (UIStoryboardPopoverSegue *)segue;
self.myPopoverController = popoverSegue.popoverController;
}
}
}
- (void)methodThatShouldCauseMyPopoverToCloseAnimated:(BOOL)animated
{
[self.myPopoverController dismissPopoverAnimated:animated];
NSLog(@"Dismissed");
}
-(IBAction)presentPopoverView:(id)sender {
if (!popOverViewIsShown){
[self performSegueWithIdentifier:@"popOverSegue" sender:self];
popOverViewIsShown = YES;
}else {
[self methodThatShouldCauseMyPopoverToCloseAnimated:YES];
popOverViewIsShown = NO;
}
}
- (IBAction)logoutMethod:(id)sender {
[self methodThatShouldCauseMyPopoverToCloseAnimated:YES];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Logout"
message:@"Are you sure?"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
alert.tag = 0;
[alert show];
}
我怀疑当我打电话时methodThatShouldCauseMyPopoverToClose
that myPopoverController
等于零。有什么建议么?太感谢了! :)
像这样将弹出窗口存储在prepareForSegue中,然后放置一个断点以确保该方法正在触发。
self.myPopoverController = [(UIStoryboardPopoverSegue *)segue popoverController];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)