2012-05-23 2 views
1

Я пытаюсь запустить segue из другого viewController: так что обычно выдается вызов segue, нажимая Cell на TVC. Однако при первом запуске приложения мне нужен пользователь для настройки какой-либо конфигурации.инициировать сеанс из другого viewController

Я пытаюсь запустить этот сеанс с первого viewController (также TVC), которое отображает приложение. Поэтому я создал публичный метод на SettingsTVC (где находится segue). Реализация этого метода заключается в следующем:

-(void)setStuff{ 

    [self performSegueWithIdentifier:@"setStuffFromSettings" sender:self]; 

} 

На первом ViewController я делаю следующим образом на нажатие кнопки:

[self.tabBarController setSelectedIndex:4]; 

SettingsTVC *settings=[[SettingsTVC alloc]init]; 
[settings setStuff]; 

В соответствии с NSLogs Митос называется правильно, но Ошибки приложения говорят мне, что:

'Receiver (<SettingsTVC: 0x812d730>) has no segue with identifier 'setStuffFromSettings'' 

Возможно, я ожидаю слишком многого? Я не могу установить другой сеанс, потому что это усложнит ситуацию, и я не хочу, чтобы viewController был доступен из более чем одного места (я думаю, Apple тоже не нравится).

Любые идеи? Заранее спасибо!

ответ

2

У вас нет сеанса с этим идентификатором, подключенным к VC, с которого вы вызываете функцию выполнения. См. Изображение ниже. Эта связь между вашими контроллерами просмотров должна быть названа правильно.

Проверьте свои связи и убедитесь, что имя совпадает.

Segue Image

+0

Спасибо, но у меня есть SEGUE правильно имени и ссылается на. Вот почему я нахожу себя озадаченным ошибкой. Фактически в качестве теста я добавил кнопку на viewController, где произошел segue, и я добавил [self performSegueWithIdentifier: @ "setStuffFromSettings" отправитель: self]; код и он работает. Он не работает, когда я пытаюсь инициировать его из другого viewControler с помощью общедоступного метода. – Marcal

+0

подключен к UITableViewCell ... – Marcal

+0

Не имеет значения, к какому способу вы подключили его, но я всегда подключаю свой Segue к VC, а затем вызываю executeSegue в методе didSelectRowAtIndexPath. Если вам нужна дополнительная помощь, вам нужно будет заархивировать этот проект и отправить его мне по электронной почте или опубликовать снимок экрана вашей раскадровки с именами всех файлов Segue, а также с кодом VC, с которым вы сталкиваетесь. –

 Смежные вопросы

  • Нет связанных вопросов^_^