tabBarController выгружает себя после вызова modalView

У меня есть tabBarController с 6 представлениями. Поскольку tabBarController по умолчанию загружает первое представление, мне нужно загрузить представление № 6 при запуске моего приложения, поэтому в моем tabBarController я добавляю к viewWillAppear [self.tabBarController setSelectedIndex:6];, хорошо. На мой взгляд, № 3 есть 2 модальных представления, которые я создаю в раскадровке. Когда я нажимаю кнопку, я загружаю свой модальный вид, а когда закрываю его [self dismissModalViewControllerAnimated:YES]; (Я был в представлении № 3). Я вижу представление № 6, но мне нужно вернуться к представлению № 3, поэтому, если я правильно понимаю, когда я вызываю свой модальный вид, он выгружает мой tabBarController, а когда я закрываю его, снова загружаю tabBarController с представлением # 6, но мне нужно увидеть мой вид № 6, где я вызываю свой modalView, как я могу это исправить?

P.S. Надеюсь, вы понимаете мой английский


person Roman Simenok    schedule 02.11.2013    source источник
comment
Ваше понимание неверно - контроллер панели вкладок не выгружается, когда вы представляете модальный контроллер.   -  person rdelmar    schedule 02.11.2013
comment
@rdelmar неверен, но viewWillAppear работает после закрытия modalView. Как это исправить?   -  person Roman Simenok    schedule 02.11.2013


Ответы (3)


Похоже, вы добавили [self.tabBarController setSelectedIndex:6]; к viewWillAppear вместо viewDidLoad. Там нет viewWillLoad.

person imihaly    schedule 02.11.2013
comment
если я поставлю его в viewDidLoad, мое приложение загрузит первую страницу вместо шести - person Roman Simenok; 02.11.2013

Сделайте что-то подобное в методе viewDidAppear вашего контроллера панели вкладок, чтобы он устанавливал selectedIndex только при запуске приложения:

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    static BOOL isFirst = YES;
    if (isFirst) {
        [self setSelectedIndex:6];
        isFirst = NO;
    }
}
person rdelmar    schedule 02.11.2013
comment
@RomanSimenok, что ты имеешь в виду под своим комментарием? Вы получаете сообщение об ошибке? Если так, вам нужно опубликовать код, который вы пробовали. - person rdelmar; 04.11.2013
comment
да, ошибка, но viewDidAppear неправильный путь, например, даже если я поместил туда [self.tabBarController setSelectedIndex:6]; он всегда будет отправлять меня на 6 страницу, поэтому здесь работает только viewWillLoad, я пытаюсь заставить прийти, если есть, но получаю только ошибки. - person Roman Simenok; 05.11.2013
comment
@RomanSimenok, он не всегда должен отправлять вас на 6, только при первом появлении представления. Я проверил свой код, и он отлично работает для меня. Как я уже сказал выше, вы должны отредактировать свой вопрос, чтобы показать код, который вы используете сейчас. - person rdelmar; 06.11.2013

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

person Roman Simenok    schedule 06.11.2013