Как перейти на ViewController 2-го уровня при запуске в приложении для iPhone на основе навигации - PullRequest
1 голос
/ 02 сентября 2010

У меня есть приложение для iPhone, основанное на навигации. Обычно вы запускаете RootViewController, там вы можете выбрать строку из UITableView, которая приведет вас к другому ViewController, назовем его SecondLevelViewController.

Когда приложение запускается, я проверяю, было ли оно закрыто из SecondLevelViewController (через параметр, сохраненный в defaultUserSettings). Если это так, я хочу снова отобразить этот SecondLevelViewController.

Для этого я делаю проверку в моем заявлении делегатов

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

метод, сразу после

[window addSubview:[navigationController view]];
[window makeKeyAndVisible];

Затем я добавляю SecondLevelViewController в стек просмотра. Я попробовал это с pushViewController и с setViewControllers:

        SecondLevelViewController *newVC = [[SecondLevelViewController alloc] initWithNibName:@"SecondLevelView" bundle:nil];            
        [self.navigationController setViewControllers:[NSArray arrayWithObjects:[self.navigationController.viewControllers objectAtIndex:0], newVC, nil]
                                             animated:YES];

Затем приложение показывает желаемый вид. Теперь проблема: SecondLevelViewController отображает кнопку возврата в левой части панели навигации. Эта кнопка не появляется при использовании способа, описанного выше. Мой вывод заключается в том, что RootViewController еще не полностью инициализирован во время перехода на SecondLevelViewController. Это возможно? Как я могу избежать этого?

Спасибо, Марк.

1 Ответ

0 голосов
/ 20 сентября 2010

Да ....... Предполагается, что это правда ..... Вы можете сделать вещь ... как это ..

Просто проверьте условие в соответствии с вашими настройками, и это напрямуюисходя из RootViewController, затем поместите пользовательскую кнопку «Назад» / кнопку панели в панель навигации ..... из SecondLevelViewController.

Перед этим Вам необходимо проверить условие ... если оно действительно, используйте пользовательскую кнопку

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemCancel target: self action: @selector (Back:)];

  • (void) Назад:отправитель {

    [self.navigationController popToRootViewControllerAnimated: YES];}

Я думаю, что это определенно сработает для вас.

...