Переключатель раскадровки Xcode

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

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

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

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

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

Любая помощь приветствуется, также прилагается проект Xcode ...

Вот zip ..

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


person Jayr    schedule 16.12.2011    source источник


Ответы (2)


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

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

Не забудьте присвоить второму контроллеру представления идентификатор, например, "second".

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

[self performSegueWithIdentifier:@"second" sender:self];

Push Segues будет работать, только если установлен контроллер навигации.

person Tobias Bambullis    schedule 16.12.2011

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

// 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"];

Загрузите образец проекта здесь.

person justinkoh    schedule 31.05.2012