Переключение вида - PullRequest
       12

Переключение вида

0 голосов
/ 03 декабря 2009

У меня проблема с переключением представлений в приложении для 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 - Приложения Multiview.

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

Я добавляю эти строки в 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 Ответ

1 голос
/ 03 декабря 2009

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

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

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».

...