Fra*_*esc 10 uibarbuttonitem uiactionsheet ipad
我有一个名为-showMoreTools的方法:它是:
- (IBAction) showMoreTools:(id)sender {
UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"Close" otherButtonTitles:@"Add Bookmark", @"Add to Home Screen", @"Print", @"Share", nil];
popupQuery.actionSheetStyle = UIActionSheetStyleDefault;
popupQuery.dismiss
[popupQuery showFromBarButtonItem:moreTools animated:YES];
[popupQuery release];
}
Run Code Online (Sandbox Code Playgroud)
当用户点击UIBarButtonItem
它时会显示该信息UIActionSheet
,但是,如果用户想要关闭而UIActionSheet
没有点击关闭按钮,(点击UIBarButtonItem
,则显示UIActionSheet
在第一个上方UIActionSheet
.
有可能以某种方式实现另一个时间UIBarButtonItem
来关闭UIActionSheet
?
非常感谢你 - 我是iOS编程的新手!
chr*_*ton 33
若要在单击按钮两次时将其关闭,则需要跟踪当前显示的ActionSheet.我们在iPad应用程序中执行此操作,效果很好.
在您的具有showMoreTools的类中,在标头中放置:
@interface YourClassHere : NSObject <UIActionSheetDelegate> {
UIActionSheet* actionSheet_; // add this line
}
Run Code Online (Sandbox Code Playgroud)
在类文件中,将其更改为:
-(IBAction) showMoreTools:(id)sender {
// currently displaying actionsheet?
if (actionSheet_) {
[actionSheet_ dismissWithClickedButtonIndex:-1 animated:YES];
actionSheet_ = nil;
return;
}
actionSheet_ = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"Close" otherButtonTitles:@"Add Bookmark", @"Add to Home Screen", @"Print", @"Share", nil];
actionSheet_.actionSheetStyle = UIActionSheetStyleDefault;
[popupQuery showFromBarButtonItem:moreTools animated:YES];
[actionSheet_ release]; // yes, release it. we don't retain it and don't need to
}
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
// just set to nil
actionSheet_ = nil;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6622 次 |
最近记录: |