UIViewController удалить из superview после получения nsnotification - PullRequest
1 голос
/ 20 июля 2009

Я пытаюсь удалить UIViewController из суперпредставления после получения уведомления, но он не работает.

в моем приложении, я делаю что-то вроде этого:

- (void)applicationDidFinishLaunching:(UIApplication *)application{    
NSLog(@"applicationDidFinishLaunching");
[window addSubview:tabBar.view];
splash = [[SplashViewController alloc] init]; <-- this i want to remove
[window addSubview:splash.view];
[window makeKeyAndVisible]; }

в SplashViewController. Я регистрирую представление для получения NSNotifications, как это:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fadeScreen:) name:@"CloseSplashScreen" object:nil];

SplashViewController появляется сразу после Default.png и должен плавно исчезать после анализа некоторых данных ...

в моем TableViewControler я хочу отправить уведомление в методе viewWillAppear, но он не работает.

- (void)viewWillAppear:(BOOL)animated{
NSLog(@"viewWillAppear");
[[NSNotificationCenter defaultCenter] postNotificationName:@"CloseSplashScreen" object:self];}

метод вызывается, но представление не удаляется из суперпредставления. я пытался поместить postNotification в - (void) viewDidLoad, но метод не вызывается ...

есть идеи, почему это не работает? заранее спасибо

1 Ответ

0 голосов
/ 08 августа 2014

Поскольку похоже, что вы пытаетесь реализовать своего рода заставку, рассмотрите возможность использования UINavigationController для представления заставки. То, что вы делаете - это добавляете представление контроллеров представления как подпредставление UIWindow, но никто не управляет вашим контроллером представления. Это не то, как вы должны делать вещи.

UIWindow имеет метод setRootViewController, который должен быть в вашем appDelegate. Таким образом, вы можете нажать свой Splash Controller и через определенный интервал нажать первый viewController приложения.

Как замечание, я понимаю, что некоторые разработчики используют заставки в качестве средства укрепления идентичности бренда. Это, как говорится, рассмотрим Руководство по человеческому интерфейсу Apple :

Насколько это возможно, избегайте отображения заставки или другого запуска опыт. Лучше всего, когда пользователи могут сразу начать использовать ваше приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...