多个UIAlertViews在同一视图中
我有两个带有ok / cancel按钮的UIAlertViews。
我通过以下方式捕获用户响应:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
我遇到的问题是, 哪个alertView目前正在打开?
在每个单击确定/取消时,我有不同的操作…
你有几个选择:
-
使用ivars。 创建警报视图时:
myFirstAlertView = [[UIAlertView alloc] initWith...]; [myFirstAlertView show]; // similarly for the other alert view(s).
并在委托方法中:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (alertView == myFirstAlertView) { // do something. } else if (alertView == mySecondAlertView) { // do something else. } }
-
使用
UIView
的tag
属性:#define kFirstAlertViewTag 1 #define kSecondAlertViewTag 2
UIAlertView *firstAlertView = [[UIAlertView alloc] initWith...]; firstAlertView.tag = kFirstAlertViewTag; [firstAlertView show]; // similarly for the other alert view(s).
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { switch (alertView.tag) { case kFirstAlertViewTag: // do something; break; case kSecondAlertViewTag: // do something else break; } }
-
子类
UIAlertView
并添加userInfo
属性。 这样,您可以为警报视图添加标识符。@interface MyAlertView : UIAlertView @property (nonatomic) id userInfo; @end
myFirstAlertView = [[MyAlertView alloc] initWith...]; myFirstAlertView.userInfo = firstUserInfo; [myFirstAlertView show]; // similarly for the other alert view(s).
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (alertView.userInfo == firstUserInfo) { // do something. } else if (alertView.userInfo == secondUserInfo) { // do something else. } }
UIAlertView
是一个UIView
子类,因此您可以使用其tag
属性进行标识。 因此,当您创建警报视图时,设置其标记值,然后您将能够执行以下操作:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{ if (alertView.tag == kFirstAlertTag){ // First alert } if (alertView.tag == kSecondAlertTag){ // First alert } }
- UINavigationController的addChildViewController和topViewController之间的相互作用
- Objective-C iOS开发在设置variables时使用viewDidLoad或initWithCoder,为什么?
- 我怎么能在viewDidLoad做UIView animateWithDuration? IOS 7
- 倒计时NSTimer在一个UIAlertController的标题中获得一个空值,而不是几秒钟的时间
- 使用PHP在ios上通过JSON在web服务器上上传图片
- corebluetooth和ios状态
- 在VFR阅读器中需要列表searchfunction
- 从init方法调用一个方法?
- 为什么我们在@synchronized块中传递self?