Переключите UIViewController в панели приложений типа контроллера панели вкладок - PullRequest
0 голосов
/ 09 августа 2010

Простите за простой вопрос, но я выдернул свои волосы, пытаясь справиться с навигацией в iPhone.

Итак, у меня есть приложение типа Tab Bar Controller с UITabBar и 3 UITabBarItems. У меня есть 1-й элемент панели вкладок, загружающий что-то вроде «Главный экран / Добро пожаловать», на главном экране есть кнопка. Когда пользователь нажимает кнопку, я хочу открыть другой UIViewController (LoginViewViewController), чтобы позволить человеку войти в систему.

Я пытаюсь в основном переключить UIViewController, а затем, когда они успешно вошли в систему, я хочу изменить TabBarItems.

Это код, который у меня есть в файле .m на ViewController, который подключен к 1-му TabBarItem:

#import "LaunchViewViewController.h"
#import "LoginViewViewController.h"

@implementation LaunchViewViewController

@synthesize myLoginViewViewController;

- (IBAction)cmdRSVP_Click:(id)sender {

 //Try #1
 //[self addSubview:myLoginViewViewController.view];

 //Try #2
 //[[self navigationController] pushViewController:myLoginViewViewController animated:YES];

 //Try #3
 //LoginViewViewController *myLoginViewViewController2 = [[LoginViewViewController alloc] initWithNibName:@"LoginView" bundle:[NSBundle mainBundle]];
 //[self.navigationController pushViewController:myLoginViewViewController2 animated:YES];
 //[myLoginViewViewController2 release];
 //myLoginViewViewController2 = nil;

 //Try #4
 //This just changes my screen to all White (expect the TabBarNavigationController
 //[self.view removeFromSuperview];
 //[self.view insertSubview:self.myLoginViewViewController.view atIndex:0];


 // This displays without issue.
 [self displayMessage:@"RSVP Clicked":@"Switch to Login View"]; }

Как видите, я пробовал 4 разных способа, которые я видел в разных уроках.

При попытке 1, 2, 3: ничего не происходит (без сбоев или исключений), но все еще отображается окно с предупреждением.

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

Любая помощь в получении меня на треке была бы великолепна !!!

Заранее спасибо! Jason

1 Ответ

2 голосов
/ 16 августа 2010

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

Проблема заключалась в том, что мне нужно было подключить контроллер UINavigation к элементу панели вкладок (а не UIViewController).Тогда UIViewController будет RootViewController контроллера UINavigation, что позволит мне использовать методы pushViewController и popViewController.

ПРИМЕЧАНИЕ. Это ссылка на вопрос, которая помогла мне решить этот вопрос: TableView НЕ переключается в подробный вид при подключении к контроллеру панели вкладок

Jason

...