popViewController不适用于UIAlertView

时间:2012-08-16 08:51:13

标签: objective-c ios cocoa-touch uialertview

我遇到了AlertView的问题。我正在尝试使用UIAlertView,点击确定后它会返回上一个屏幕,但似乎没有任何建议?

if (xGPSCoordinate==0 && yGPSCoordinate == 0) {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" 
                                                    message:@"Failed to load the to get your current location"
                                                   delegate:self 
                                          cancelButtonTitle:@"Ok" 
                                          otherButtonTitles:nil, nil];
    [alert show];
    [alert release];

    return;
    [self.navigationController popViewControllerAnimated:YES];
} 

if (xGPSCoordinate==0 && yGPSCoordinate == 0) {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"iPoly" 
                                                    message:@"Failed to load the to get your current location"
                                                   delegate:self 
                                          cancelButtonTitle:@"Ok" 
                                          otherButtonTitles:nil, nil];
    [alert show];
    [alert release];
    [self.navigationController popViewControllerAnimated:YES];
    return;

}   

两者都不起作用

3 个答案:

答案 0 :(得分:3)

为此,您必须使用UIAlertView的委托方法。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

首先在@interface <UIAlertViewDelegate>

中使用此功能

然后设置委托self.yourAlertView.delegate=self;

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{

       if(buttonIndex==0)//first button which should be the OK button
       {

              [self.navigationController popViewControllerAnimated:YES];

       }

 }

答案 1 :(得分:1)

使用UIAlertView的委托方法,请参阅iNoob给出的答案。如果你在“回归”之后写任何东西,那就没有意义了。声明如下面的代码“return;”声明永远不会被执行。

请参阅apple developer链接,了解有关UIAlertView委托http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIAlertViewDelegate_Protocol/UIAlertViewDelegate/UIAlertViewDelegate.html

的更多详细信息

或关于警报视图的简单教程 http://mobile.tutsplus.com/tutorials/iphone/uialertview/

答案 2 :(得分:0)

您只需要实现UIAlerView Delegate Methods。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{}

将Pop的代码编写到此前的Controller中。您可以单击按钮索引并根据您可以使用的内容。不要将Conform UIAlertViewDelegate连接到接口。