У меня есть следующий стек контроллеров представления.
Во-первых, мое приложение покажет страницу тура по приложению. (Скажем, TourViewController
- суперкласс UIViewController
). Добавил этот контроллер в AppDelegate
как rootviewcontroller.
self.window.rootViewController = tourViewController;
Затем на странице тура, если пользователь нажимает кнопку «Войти», я представляю второй контроллер представления (скажем, LoginViewController
- суперкласс UIViewController
).
UINavigationController *loginNavigationController = [[UINavigationController alloc] initWithRootViewController:self.loginViewController];
[self presentViewController:loginNavigationController animated:YES completion:nil];
После успешного входа в систему мне нужно отказаться от второго контроллера представления (LoginViewController
) и я хочу показать представление на основе панели вкладок для дальнейших нужд.
Я попробовал этот код внутри метода успешного входа в систему.
[self dismissViewControllerAnimated:YES completion:^{
TabBarViewController *tabController = [[TabBarViewController alloc] init];
[self presentViewController:tabController animated:NO completion:nil];
AppDelegate *applicationDelegate = [[UIApplication sharedApplication] delegate];
applicationDelegate.window.rootViewController = tabController;
}];
Проблемы:
Когда я нахожусь в
LoginViewController
, у меня есть два контроллера представления в моем стеке. Так что даже я отказываюсь отLoginViewController
, другой (TourViewController
) остается на экране.Если я попробовал приведенный выше код, контроллер вкладки bat был успешно добавлен в качестве контроллера корневого представления. Но, когда
LoginViewController
ушел в отставку, фон был заполненTourViewController
Что мне нужно, так это то, что когда я ухожу в отставку с LoginViewController
, фоновое представление должно быть контроллером панели вкладок вместо TourViewController
.
Нужна помощь!!
loginviewcontroller
в качестве корневого представления вместо его представления, а затем, когда вы успешно войдете в систему, назначьте свойtabbarcontroller
в качестве корневого представления. - person Dipen Panchasara   schedule 09.09.2015