Изменить представление в одном XIB

Я пытаюсь сделать приложение, используя Interface Builder (вместо Storyboard) в первый раз, но я застрял. Можно ли изменить вид с помощью ViewController в том же XIB? Мне бы хотелось, чтобы, когда я нажимаю кнопку, вид менялся на другой ViewController, присутствующий в том же XIB file. Должен ли я отозвать действие? Если да, то какие?


person CrazySoftware    schedule 06.05.2013    source источник
comment
Похоже, то, что вы пытаетесь сделать, — это то, для чего были созданы раскадровки. Почему вы хотите использовать файл xib? Я думаю, что намерение Apple состояло в том, чтобы раскадровки в значительной степени заменили xib-файлы как новый способ создания пользовательского интерфейса.   -  person rdelmar    schedule 06.05.2013
comment
Вы правы, на самом деле я обычно использую раскадровки; но я хотел попробовать Interface Builder в это время. Проблема в том, что я почти закончил свое приложение, я не могу перезапустить его из-за этой маленькой проблемы.   -  person CrazySoftware    schedule 06.05.2013
comment
Я не понимаю, что вы пытаетесь сделать - файлы xib содержат представления, а не контроллеры представлений (контроллер представления обычно является владельцем файла). Вы можете поместить несколько представлений в файл xib, если хотите, и переключаться между ними для вашего одного контроллера, но это не переключает контроллеры представлений.   -  person rdelmar    schedule 06.05.2013
comment
На самом деле в комментарии ниже я исправил; У меня есть два окна, а не два ViewController в моем файле .xib. Извините за ошибку, я отредактирую вопрос.   -  person CrazySoftware    schedule 06.05.2013


Ответы (1)


Если у вас есть 2 контроллера представления с 2 файлами .xib, например,

введите здесь описание изображения

Вы можете представить NextViewControler из метода нажатия кнопки вашего ViewController,

-(IBAction) yourButtonPressed:(id)sender;{
    NextViewController *nextViewController = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
    [self presentViewController:nextViewController animated:YES completion:nil];
}

ИЗМЕНИТЬ:

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

-(IBAction) yourButtonPressed:(id)sender;{
    ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    [self presentViewController:viewController animated:YES completion:nil];
}
person Thilina Hewagama    schedule 06.05.2013
comment
Нет, у меня есть только 1 файл .xib с одним ViewController. - person CrazySoftware; 06.05.2013
comment
Спасибо, но я ошибся; У меня два окна, а не два ViewController'а. Поэтому я использовал AppDelegate для первого окна. Кнопка должна менять вид с первого окна на второе при нажатии. Извиняюсь! - person CrazySoftware; 06.05.2013
comment
Используйте только одно окно и 2 ViewController'а. - person Thilina Hewagama; 06.05.2013