代表的几个UIAlertViews

qua*_*ano 38 iphone delegates uialertview ios uialertviewdelegate

目前我在UIAlertView这里和那里都有一堂课.目前,同一个类是这些的委托(它是非常合乎逻辑的).不幸的是,这些UIAlertViews将调用该类的相同委托方法.现在,问题是 - 您如何知道调用委托方法的警报视图?我只想检查警报视图的标题,但这不是那么优雅.什么是处理几个UIAlertViews 最优雅的方式?

Can*_*der 102

UIAlertView像这样标记:

#define kAlertViewOne 1
#define kAlertViewTwo 2

UIAlertView *alertView1 = [[UIAlertView alloc] init...
alertView1.tag = kAlertViewOne;

UIAlertView *alertView2 = [[UIAlertView alloc] init...
alertView2.tag = kAlertViewTwo;
Run Code Online (Sandbox Code Playgroud)

然后使用这些标记在委托方法中区分它们:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if(alertView.tag == kAlertViewOne) {
        // ...
    } else if(alertView.tag == kAlertViewTwo) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 很好.虽然我使用开关.:) (3认同)
  • kAlertViewOne和kAlertViewTwo比1或2更有意义.例如,在你的问题中,你可以使用kAlertResume和kAlertRetry,它们比两个随机数更具可读性. (3认同)