Код для отправки мне другого представления

Вопрос:

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

    secViewController *menu = [[secViewController alloc] init];
[self presentViewController:menu animated:YES completion:nil];

я не получаю никаких ошибок, но приложение работает так, как будто этих строк не было.

Код работает в viewdidLoad в диспетчере представлений первого экрана. Я хочу, чтобы код отвел меня в secviewcontroller.

Чтобы обеспечить еще больший контекст:

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

   if (![[NSUserDefaults standardUserDefaults] boolForKey:@"FirsstLaunch"]) {

self.view.backgroundColor = [UIColor blueColor];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirsstLaunch"];
[[NSUserDefaults standardUserDefaults] synchronize];

}
else{

self.view.backgroundColor = [UIColor purpleColor];


secViewController *menu = [[secViewController alloc] init];
[self presentViewController:menu animated:YES completion:nil];

// [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirsstLaunch"];
//[[NSUserDefaults standardUserDefaults] synchronize];}];
}

вы можете видеть, что изменения цвета фона есть, чтобы проверить, работает ли код, какой он есть.

Этот блок кода находится в первом контроллере представления, и он должен отправить меня ко второму представлению, если я когда-либо ранее открывал приложение.

Был бы очень признателен за помощь, спасибо вам очень.

Ответ №1

Вы можете попробовать использовать навигационный контроллер.

AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:[[MyFirstViewController alloc] init]];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstLaunch"]) {
[navController pushViewController:[[MySecondViewController alloc] init] animated:NO];
}
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
}

Оцените статью
TechArks.Ru
Добавить комментарий