#iphone #ios #xcode #storyboard
#iPhone #iOS #xcode #раскадровка
Вопрос:
Я хотел бы реализовать кнопку для отображения другого представления. Я определил целевой ViewController в раскадровке и создал переход (типа push) и присвоил ему идентификатор.
В моем контроллере корневого представления
какой-то метод…
UIButton *btn = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[btn addTarget:self action:@selector(showDetailView:) forControlEvents:UIControlEventTouchUpInside];
и
- (IBAction)showDetailView:(id)sender {
[self performSegueWithIdentifier:@"ShowDetail" sender:sender];
}
однако это ничего не делает. Я слышал, что переход — это объект. нужно ли мне иметь ссылку на него / синтезировать его в моем классе контроллера корневого представления? Любой совет будет оценен. Спасибо.
Ответ №1:
Редактировать:
Убедитесь, что ваш корневой контроллер представления встроен в навигационный контроллер. если это не так, выберите свой контроллер представления в конструкторе раскадровки и выберите Редактор-> Встроить-> Навигационный контроллер в меню.
Оригинал:
дважды проверьте идентификатор (код раскадровки) и попробуйте установить sender
значение self
. Если это не сработает, вы можете создать объект Segue самостоятельно в коде.
Комментарии:
1. нужно ли мне добавлять панель навигации / контроллер или есть какой-то протокол, которому я должен соответствовать, чтобы использовать Segue?
2. вы встроили свой корневой контроллер представления в навигационный контроллер ?.. это требуется для того, чтобы «push»-переход сработал..
3. Большое спасибо, это сделало свое дело! есть ли способ скрыть панель навигации в корневом ViewController? (Мне нужно больше места на экране)
4. Установите
self.navigationController.navigationBarHidden = YES;
в своемviewWillAppear:
методе5. сделайте обратное в viewWillAppear в вашем 2-м контроллере просмотра