4

我有 iPhone,我希望何时AlertView显示并且用户在该视图应该更改后按下OK按钮,但它没有发生。

  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Thank you" message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
  [alert show];
  [alert release];
  return;
  [self moveToView];

-(void)moveToView
{
    MainViewController*targetController=[[MainViewController alloc]init];
    [self.navigationController pushViewController:targetController animated:YES];
}
4

6 回答 6

7

请用UIAlertViewDelegate

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    // Code to move to next view
    [self moveToView];
}

注意UIAlertViewDelegate在你的接口声明中实现。此外,在声明 UIAlertView 时,将委托设置为 self。

希望这对您有所帮助。

于 2012-07-10T10:28:59.410 回答
6

这很简单。实现 UIAlertViewDelegate 并将代码放在那里。

- (void) alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
   MainViewController*targetController=[[MainViewController alloc]init];
   [self.navigationController pushViewController:targetController animated:YES];
   [targetController release];
}
于 2012-07-10T10:30:26.993 回答
5

在 .h 中,实现了 UIAlertViewDelegate

 @interface ClassName : ParentClassName <UIAlertViewDelegate>

在 .m 中,添加这个方法,

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

      [self moveToView];

}
于 2012-07-10T10:31:55.577 回答
4

实现警报视图的委托:

在 yourClass.h 文件中:

@interface yourClass : UIViewController<UIAlertViewDelegate>{

}
@end

在 yourClass.m 文件中:

@implementation yourClass

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
    [self moveToView];
}
@end
于 2012-07-10T10:32:46.337 回答
3

好吧,您将 self 设置为 UIAlertView 的代表。这是正确的,这是您必须采取的第一步。之后继续实现这个方法:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    [self moveToView];
}

您还可以在此处进行 switch 语句以查看按下了哪个按钮。但是由于您在 AlertView 上只有 OK 按钮,因此没有必要。

希望这可以帮助。

干杯!

于 2012-07-10T10:29:42.140 回答
2

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex在方法中实现您的代码, 并UIAlertViewDelegate在您的类 .h 文件中添加。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
        NSLog(@"The index: %d",buttonIndex);
        MainViewController*targetController=[[MainViewController alloc]init];
        [self.navigationController pushViewController:targetController animated:YES];
        [targetController release];
    }

我想这会对你有所帮助。

于 2012-07-10T10:30:01.450 回答