Переключатель раскадровки Xcode - PullRequest
3 голосов
/ 16 декабря 2011

Кто-нибудь поможет мне понять новую раскадровку в Xcode 4.2?
Я знаю, как кодировать для загрузки другого контроллера представления, но в режиме раскадровки есть различия ..

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

С помощью обычных файлов .xib я могу переключать представления с этим кодом из RootViewController ..

SecondViewController *Second = [[SecondViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:Second animated:YES];

Когда я использую его в режиме раскадровки, он просто загружает UIAlertView на SecondViewController.m и экран кажется черным?

Буду признателен за любую помощь, также прилагается проект Xcode ...

Вот почтовый индекс ..

-х- Джей Рубен

Ответы [ 2 ]

13 голосов
/ 16 декабря 2011

вы можете сделать это:

SecondViewController *second= [self.storyboard instantiateViewControllerWithIdentifier:@"second"];
[self presentModalViewController:second animated:YES];

Не забудьте дать контроллеру второго вида идентификатор, такой как "second".

В противном случае вы можете подключить оба контроллера представления с помощью segue.Удерживайте CTRL при перетаскивании с первого на второй вид контроллера.Теперь вы можете выбрать «push» и присвоить segue имя, чтобы программно переключать View:

3 голосов
/ 31 мая 2012

Вы также можете переключиться следующим образом:

// get the view that's currently showing
UIView *currentView = self.view;
// get the the underlying UIWindow, or the view containing the current view
UIView *theWindow = [currentView superview];

UIView *newView = aTwoViewController.view; 

// remove the current view and replace with myView1
[currentView removeFromSuperview];
[theWindow addSubview:newView];

// set up an animation for the transition between the views
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

[[theWindow layer] addAnimation:animation forKey:@"SwitchToView2"];

Скачать образец проекта здесь .

...