2012-01-03 2 views
1

Я учусь, как манипулировать просмотр дисплеи программного мне удается отобразить новое представление в моей AppDelegate следующего блоком кода:Создания и удаление UIViews Программной

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

UINavigationController *navController = [[UINavigationController alloc] init]; 
loginController = [[LoginController alloc] init]; 
[navController pushViewController:loginController animated:NO]; 
[self.window addSubview:navController.view]; 
[self.window makeKeyAndVisible]; 

return YES; } 

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

моего кода для отображения второго вида заключается в следующем:

HomeController *homeView = [[HomeController alloc] init]; 
     [self.window addSubview:homeView.view]; 
     [homeView.view release]; 

Пожалуйста посоветуйте .. Я искал в течение нескольких часов не дали никаких результатов, используя Коммутационные Просмотры Программными, картинки просмотров, removeSuperview ..

В принципе, я хочу создать простой поток входа, при запуске приложения я покажу свое первое представление (форма входа), после успешного входа в систему я хочу отказаться от старого представления и отобразить второе представление, которое является моей домашней страницей.

+0

У вас есть утечки памяти в вашем примере кода, 'loginController' никогда не выпускается. –

+0

спасибо, я добавлю, что в. –

ответ

2

Вы находитесь на правильном пути с использованием UINavigationController. На самом деле, вы почти там.

У вас уже есть два контроллера вида - один для страницы входа и один для главной страницы. В didFinishLaunchingWithOptions: нажмите оба контроллера на стек UINavigationController: сначала «домашний» контроллер, затем «логин». Как только контроллер входа в систему обнаружит, что логин был успешным, позвоните popViewControllerAnimated: или popToRootViewControllerAnimated:, чтобы перейти на домашнюю страницу.

+0

, так как вы используете контроллер навигации, что заставляет пользователя отжимать и получать в главное меню без входа? –

+0

@ JoãoPortela Хорошая точка! Вам нужно [скрыть кнопку «назад»] (http://stackoverflow.com/questions/1453519/how-to-hide-the-back-button-in-uinavigationcontroller). – dasblinkenlight

+0

спасибо, я получил его работу после консультации @dasblinkenlight! –

Смежные вопросы