2009-12-03 2 views
0

У меня проблема с переключением просмотров в приложении iPhone. У меня есть исходный код «Начало разработки iPhone 3» (http://books.google.com/books?id=TcP2bgESYfgC&printsec=frontcover&dq=beginning+iphone+3+development#v=onepage&q=beginning%20iphone%203%20development&f=false) - глава 6 - Многопользовательские приложения.Переключение вида

Теперь у меня есть проблема, я хочу создать новый вид, который должен переключаться, нажав кнопку на синем экране «Нажмите меня». Но это не сработало.

я добавляю эти строки в IBAction, что кнопка на голубом экране прессованные:

StartViewController *startController = [[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil]; 
self.startViewController = startController; 

[self.view insertSubview:startController.view atIndex:1]; 
[startController release]; 

Но панель инструментов в нижней части не исчезнет. Но я хочу, чтобы эта панель инструментов исчезла.

Если бы я писал

[self.view insertSubview:startController.view atIndex:0]; 

вместо

[self.view insertSubview:startController.view atIndex:1]; 

новый XIB лежит позади старого, так что я вижу обе точки зрения, старый и новый. Почему? Я этого не понимаю.

спасибо заранее & С наилучшими пожеланиями Тим

ответ

1

Панель инструментов в SwitchView так что вам нужно будет, чтобы скрыть это с точки зрения, если вы хотите, чтобы скрыть. Вы можете сделать IBOutlet для панели инструментов, а затем вызвать setHidden: (BOOL), чтобы скрыть его. Вам нужно будет сделать это от BlueViewController, поэтому вам понадобится способ получить супер-представление (это SwitchView). Вам также необходимо удалить BlueView из супер-представления, вызвав removeFromSuperView на blueViewController, прежде чем вставлять новый вид на место. Это в основном тот же код, что и кнопка переключения в SwitchViewController.

Обновление: Я посмотрел ваш код. В BlueViewController.m использовать это для blueButtonPressed: (ID) отправитель

StartViewController *start = [[StartViewController alloc] initWithNibName:@"StartViewController" bundle:nil]; 
self.startViewController = start; 
[start release]; 
View_SwitcherAppDelegate *appDelegate = [UIApplication sharedApplication].delegate; 
SwitchViewController *switchController = appDelegate.switchViewController; 
switchController.theToolbar.hidden = YES; 
[self.view removeFromSuperview]; 
[self.view insertSubview:startViewController.view atIndex:0]; 

Вам также необходимо добавить эти два импорта для «View_SwitcherAppDelegate.h» и «SwitchViewController.h».

+0

Я интегрирую IBOutlet UIToolbar * theToolbar; и @property (неатомный, сохраняемый) UIToolbar * theToolbar; на SwitchViewController.h и синтезировать его. Я установил соединение с «Switch View Controller» в «MainWindow» на «TheToolbar». И с этими строками кода: \t \t StartViewController * start = [[StartViewController alloc] initWithNibName: @ "StartViewController" bundle: nil]; \t self.startViewController = start; \t [начало выпуска]; \t [self.view removeFromSuperview]; \t [self.view insertSubview: startViewController.view atIndex: 0]; \t [theToolbar setHidden: YES]; Я получаю ошибку, что «TheToolbar не объявлен». – Tim

+0

Последний раз исходный код проекта: ud05_188.ud05.udmedia.de/spotlight/Project.zip – Tim

+0

Не работает. На следующем экране «StartVireController.xib» есть текстовая надпись. Но экран белый. – Tim

Смежные вопросы