Помогите с навигацией Controller, windows & subviews! - PullRequest
0 голосов
/ 07 июля 2010

мой первый xib содержит ScrollView с интерфейсом в виде трамплина в MainWindow.xib:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
     navController = [[UINavigationController alloc] init];

[navController setNavigationBarHidden: YES];[окно addSubview: navController.view];[window sendSubviewToBack: navController.view];}

При нажатии кнопки появляется FirstViewController с табличным представлением и контроллером навигации:

    - (void) buttonPushed:(id)sender {
       FirstViewController *firstViewController = [[FirstViewController alloc] init];
       [navController pushViewController:firstViewController animated:YES];
[firstViewController release];


[window addSubview:navController.view]; }

Когда я нажимаю кнопку возврата в Navigation Controller, чтобы вернуться к трамплину, я получаютрамплин xib, но не реагирует на прикосновения с помощью навигационной панели сверху!

- (void)goHome:(id) sender { 
[self.view removeFromSuperview];

Как я могу вернуться к экрану трамплина (mainwindow.xib), не располагая панель навигации сверху и реагировать на прикосновения

Ответы [ 3 ]

0 голосов
/ 07 июля 2010

Почему бы вам не установить представление трамплина в качестве корневого контроллера представления вашего контроллера навигации и избавиться от любого пользовательского интерфейса в окне?

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

Таким образом, вам не придется заново изобретать колесо для загрузки первого вида из вида трамплина, и кнопка возврата будет работать правильно.

Вы можете установить для свойства navigationBarHidden значение false в методе viewDidLoad корневого контроллера представления (контроллера представления в виде трамплина).

0 голосов
/ 03 февраля 2011
- (void)applicationDidFinishLaunching:(UIApplication *)application

{

UIViewController *rootController = [[MyRootViewController alloc] init];

navigationController = [[UINavigationController alloc]

                            initWithRootViewController:rootController];

[rootController release];



window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

[window addSubview:navigationController.view];

[window makeKeyAndVisible];

}

0 голосов
/ 07 июля 2010

Вы пытались вызвать [navController setNavigationBarHidden: YES];в вашем основном виде ViewWillAppear callback?

...