Prawdziwym problemem przychodzi, gdy interfejs jest obracany do góry, a kontroler widok rodzic ma transformacja na tym. Uwierz mi, to realistyczny scenariusz, doh. Następnie arkusz akcji jest przycinany i nie można używać parentViewController, ponieważ jest on przekształcany. Rozwiązaniem, które pozwoli uniknąć tych wszystkich problemów, jest utworzenie nowego okna, dodanie kontrolera widoku obrotowego jako rootViewController i użycie jego widoku do wyświetlenia arkusza.
CGRect applicationRect = [[UIScreen mainScreen] bounds];
UIWindow* actionSheetWindow = [[UIWindow alloc] initWithFrame:applicationRect];
RotationViewController* rootViewController = [[RotationViewController alloc] initWithNibName:nil bundle:nil];
actionSheetWindow.rootViewController = rootViewController;
[rootViewController release];
actionSheetWindow.hidden = NO;
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:nil];
[actionSheet setCancelButtonWithTitle:@"Cancel" handler:^{
actionSheetWindow.hidden = YES;
[actionSheetWindow release];
}];
[actionSheet showInView:rootViewController.view];
Powyższy kod używa BlocksKit, ale można to zrobić również za pomocą właściwości delegata akcji i instancji.
RotationViewController tylko podklasą UIViewController, który implementuje
- (void) viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor clearColor];
self.view.opaque = NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
Proszę wysłać jakiś kod, a następnie łatwo możemy pomóc go rozwiązać. – jfalexvijay
Po prostu nie możesz użyć żadnej z metod showFromTabBar, jeśli używasz niestandardowych tabel tabli. stackr powiedzieć bets odpowiedź! –
@ WinDMak3r - Tak, wiem i dlatego dostał 32 zapisy w górę :) – Saawan