Я изучал раскадровку на новой iOS 5.0. Это кажется очень простым в использовании и реализации, но мой вопрос ...
Как я могу обновить старую Xib до раскадровки?
Например. У меня есть некоторые классы, которые я разработал, когда не было раскадровки, и некоторые из этих классов поставляются с файлом xib, который помогает мне быстро настроить пользовательский макет.
Очевидно, что когда я использую этот вид класса, мне нужно создать его экземпляр с помощью initWithNibName: bundle: и теперь он готов к использованию, и я могу использовать его столько раз, сколько мне нужно, потому что макет закодирован внутри xib.
Теперь раскадровка ... Раскадровка не позволяет загружать контроллер представления из xib, и я не нашел способа загрузить файл раскадровки внутри основной раскадровки. Кажется, мне нужно переконфигурировать компоновку для конкретного контроллера представления каждый раз, когда я использую его в новом проекте.
Кажется, что теперь я вынужден реконфигурировать компоновку моего контроллера в каждом новом приложении, которое использует этот контроллер, вместо того, чтобы использовать файл xib с макетом внутри.
Может быть, есть что-то, чего я не понял.
Кто-нибудь может помочь мне понять, как лучше использовать раскадровку?
Заранее спасибо.
Габриэле.
РЕДАКТИРОВАТЬ в ответ на sw3n
Может быть, я понял, благодаря sw3n. Этот код ниже работает, но это полностью правильно?
// All this code is implemented inside the MyViewController class.
// Attached to an UIButton;
- (void)loadNewController:(id)sender {
[self performSegueWithIdentifier:@"newControllerIdentifier" sender:sender];
}
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
// As suggested by sw3n
// Load the storyboard from file.
UIStoryboard *storyboardTest = [UIStoryboard storyboardWithName:@"StoryBoardLoad_Test" bundle:nil];
// Instantiate the viewController that live in the storyboard file
UIViewController *destinationViewController = [storyboardTest instantiateViewControllerWithIdentifier:@"newControllerIdentifier"];
// Instantiate a segue to start the chain
UIStoryboardSegue *segue = [[UIStoryboardSegue alloc] initWithIdentifier:identifier source:self destination:destinationViewController];
[self prepareForSegue:segue sender:sender];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"newControllerIdentifier"]) {
[segue.destinationViewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
// Are there new options to present the controller?
// If I was in a NavigationController a could obviously push it.
[self presentModalViewController:segue.destinationViewController animated:YES];
}
}