UIActionSheet
に上映があるかどうかを知る方法はView Hierarchy
?また、私はそれへの参照を取得したいのですがUIActionSheet
、何か良いアイデアはありますか?
1953 次
1 に答える
6
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;
}
于 2013-01-15T12:24:07.737 に答える