Cod*_*key 5 objective-c uialertview ios
我有两个带有ok/cancel按钮的UIAlertViews.
我通过以下方式捕获用户响应:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,哪个alertView目前正在打开?
在每个单击确定/取消时,我有不同的操作...
Dru*_*erB 20
你有几个选择:
使用ivars.创建警报视图时:
myFirstAlertView = [[UIAlertView alloc] initWith...];
[myFirstAlertView show];
// similarly for the other alert view(s).
Run Code Online (Sandbox Code Playgroud)
并在委托方法中:
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (alertView == myFirstAlertView) {
// do something.
} else if (alertView == mySecondAlertView) {
// do something else.
}
}
Run Code Online (Sandbox Code Playgroud)使用以下tag属性UIView:
#define kFirstAlertViewTag 1
#define kSecondAlertViewTag 2
Run Code Online (Sandbox Code Playgroud)
UIAlertView *firstAlertView = [[UIAlertView alloc] initWith...];
firstAlertView.tag = kFirstAlertViewTag;
[firstAlertView show];
// similarly for the other alert view(s).
Run Code Online (Sandbox Code Playgroud)
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
switch (alertView.tag) {
case kFirstAlertViewTag:
// do something;
break;
case kSecondAlertViewTag:
// do something else
break;
}
}
Run Code Online (Sandbox Code Playgroud)子类UIAlertView并添加userInfo属性.这样,您可以为警报视图添加标识符.
@interface MyAlertView : UIAlertView
@property (nonatomic) id userInfo;
@end
Run Code Online (Sandbox Code Playgroud)
myFirstAlertView = [[MyAlertView alloc] initWith...];
myFirstAlertView.userInfo = firstUserInfo;
[myFirstAlertView show];
// similarly for the other alert view(s).
Run Code Online (Sandbox Code Playgroud)
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (alertView.userInfo == firstUserInfo) {
// do something.
} else if (alertView.userInfo == secondUserInfo) {
// do something else.
}
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3741 次 |
| 最近记录: |