1
如何知道View Hierarchy
中是否有UIActionSheet
? 另外我想獲得一個參考UIActionSheet
,有什麼好主意?如何知道是否有UIActionSheet顯示在視圖層次結構中?
如何知道View Hierarchy
中是否有UIActionSheet
? 另外我想獲得一個參考UIActionSheet
,有什麼好主意?如何知道是否有UIActionSheet顯示在視圖層次結構中?
請注意,在iOS6上,您需要遞歸搜索來查找UIActionSheet,它現在不是UIWindow的直接子視圖。
static UIView *actionSheet = nil;
-(void)findActionSheetInSubviewsOfView:(id)view
{
if (actionSheet) {
return;
}
if ([[view valueForKey:@"subviews"] count] != 0) {
for (id subview in [view valueForKey:@"subviews"]) {
if ([subview isKindOfClass:[UIActionSheet class]]) {
actionSheet = subview;
}
else
[self findActionSheetInSubviewsOfView:subview];
}
}
}
-(UIActionSheet*) actionSheetShowing {
actionSheet = nil;
for (UIWindow* window in [UIApplication sharedApplication].windows) {
[self findActionSheetInSubviewsOfView:window];
}
if (actionSheet) {
return (UIActionSheet*)actionSheet;
}
return nil;
}
不錯..這工作正常。謝謝。 – Tarun
使用動作表的標籤並實現委託。 –
可能的重複:http://stackoverflow.com/questions/4363317/iphone-detecting-if-a-uialert-uiactionsheet-are-open,看看第二個答案 –
@RoxDorentus我不認爲它的總數重複,但它確實解決了我的問題,謝謝。 – CarmeloS