presentModalViewController - ViewController автоматически исчезает после представления - PullRequest
3 голосов
/ 08 февраля 2012

Я сейчас занимаюсь разработкой приложения для iPhone для своей компании, и натолкнулся на странную вещь.

Мой взгляд Иерахи выглядит так:

UITabBarController, содержащий 5 вкладок, каждая из которых содержит UINAvigationController. Пока все работает отлично.

Теперь я хочу представить модальный контроллер View с помощью метода presentModalViewController на UITabBarController, используя следующие строки кода:

-(void)callFilterOptions
{
    FilterOptionsView *filterView = [[FilterOptionsView alloc] init];
    [filterView setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self.tabBarController presentModalViewController:filterView animated:TRUE];
}

FilterOptionsView - это обычный UIViewController, содержащий только черный фон на момент.

Что происходит, так это представление отображается и через пару секунд загадочно исчезает. Почему это происходит? Ни в коем случае я не вызываю метод dismissModalViewController.

Я уже столкнулся с этой проблемой при представлении mailcomposer.

привет, Флориан

1 Ответ

0 голосов
/ 08 февраля 2012
UINavigationController *myNavController = [self navigationController];
[myNavController presentModalViewController:filterView animated:TRUE];

или лучший подход может быть:

UIApplication *myApp = [UIApplication sharedApplication];
noIBAppDelegate*appDelegate = (noIBAppDelegate*)myApp.delegate;
[appDelegate.tabBarController presentModalViewController:filterView animated:YES];

уволить:

UIApplication *myApp = [UIApplication sharedApplication];
noIBAppDelegate*appDelegate = (noIBAppDelegate*)myApp.delegate;
[appDelegate.tabBarController dismissModalViewControllerAnimated:YES];

p.s. Я рекомендую не называть контроллер представления «filterView», лучше назвать «filterViewController»

...