首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >viewWillDisappear中的UIAlertView

viewWillDisappear中的UIAlertView
EN

Stack Overflow用户
提问于 2011-12-05 17:48:13
回答 2查看 3.7K关注 0票数 2

当用户在我的UINavigationController视图上按下Back-Button时,我想显示一个有两个选项的UIAlertView。一个选项(OK)允许用户返回(前一个屏幕),另一个选项(Cancel)将停留在当前控制器。

我在我的viewWillDisappear中实现了以下代码(我在so上找到了它):

代码语言:javascript
复制
-(void) viewWillDisappear:(BOOL)animated{
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
        // back button was pressed.  We know this is true because self is no longer
        // in the navigation stack.


        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"All Data will be lost" 
                                                        message:@"You must be connected to the internet to use this app." 
                                                       delegate:self 
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:@"OK", nil];
        alert.tag = 1;
        [alert show];
        [alert release];
    }
    [super viewWillDisappear:animated];

}

问题是,在我按下Back后,视图立即跳转到前一个屏幕,并在此屏幕上显示UIAlertView。

在UIAlertView回调方法中,我使用了以下代码,但没有发生任何事情(我认为这是,因为我已经在上一个视图的这一点上):

代码语言:javascript
复制
    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    if(buttonIndex == 1)
                 NSLog(@"back");
//Go Back ...
}

BR,mybecks

EN

回答 2

Stack Overflow用户

发布于 2011-12-05 18:00:48

viewWillDisappear被调用的时候已经太晚了。导航控制器已经解除了视图控制器。

相反,您需要拦截back按钮触摸事件。你可以通过多种方式来实现这一点--你可以使用一个自定义的后退按钮来显示你的UIAlertView。或者,您可以使用具有navigationBar:shouldPopItem:方法的UINavigationBarDelegate

票数 6
EN

Stack Overflow用户

发布于 2011-12-05 18:35:51

在back按钮方法中编写UIAlertView的代码,当您单击back按钮时,它只是显示警报,当您单击按钮时,它只是调用clickedbuttonindex:方法,在此方法中,您只需调用所需的视图。

代码语言:javascript
复制
-(IBAction)back-button{
   //alert
}



- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
   //call the view
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8383463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档