как выполнить переход

#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-м контроллере просмотра