Я пытаюсь сделать приложение, используя Interface Builder
(вместо Storyboard
) в первый раз, но я застрял. Можно ли изменить вид с помощью ViewController
в том же XIB
? Мне бы хотелось, чтобы, когда я нажимаю кнопку, вид менялся на другой ViewController
, присутствующий в том же XIB file
. Должен ли я отозвать действие? Если да, то какие?
Изменить представление в одном XIB
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
Нет, у меня есть только 1 файл .xib с одним ViewController.
- person CrazySoftware; 06.05.2013
Спасибо, но я ошибся; У меня два окна, а не два ViewController'а. Поэтому я использовал AppDelegate для первого окна. Кнопка должна менять вид с первого окна на второе при нажатии. Извиняюсь!
- person CrazySoftware; 06.05.2013
Используйте только одно окно и 2 ViewController'а.
- person Thilina Hewagama; 06.05.2013