Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Xcode/ios: как передавать данные при программном запуске контроллера модального представления

Автор вопроса: user1904273Ответов: 1

Привет, я запускаю контроллер представления, который программно существует в раскадровке, со следующим кодом (который, хотя и работает, может быть не совсем правильным). Контроллер представления - это экран для редактирования подробного представления, которое изначально происходит от табличного представления. В раскадровке мне не доступен переход, поэтому я запускаю его программно.

- (void) editView:(id) sender
{
    NSLog(@"pressed");
    UIStoryboard *storyBoard = self.storyboard;
    IDEditVC *secondViewController =
    [storyBoard instantiateViewControllerWithIdentifier:@"editvc"];
}

Вопрос:

Как передать индексный путь или строку таблицы, чтобы я мог рисовать правильные данные для этой записи?

Спасибо за любые предложения.

  • Почему вы создаете экземпляр @"editvc" дважды? Sergey Kalinichenko 06.04.2015
  • у вас есть экземпляр secondViewController, объявите любое свойство в файле .h IDEditVC, скажем, NSString *myString. И используйте его как secondViewController.myString = yourIndexPath itsji10dra 06.04.2015
  • Если у вас есть указатель на новый контроллер представления (что у вас есть, поскольку вы его создали), вы можете отправить ему любое сообщение, которое вам нравится, включая сообщения для установки любых данных, которые ему могут понадобиться. Caleb 06.04.2015
  • Что вы имеете в виду под отсутствием перехода? Вы можете создать переход. Caleb 06.04.2015
  • Я удалил две лишние строки. В раскадровке нет перехода, потому что по какой-то причине я не понимаю, детальный VC не позволяет мне добавить кнопку редактирования на панель навигации. Вот почему я программно создаю кнопку редактирования и запускаю контроллер редактирования представления. Если есть способ создать переход программно, я этого не знаю. user1904273 06.04.2015
  • Я очень смущен и предполагаю, что вы новичок в разработке iOS. Вы передаете данные в логически созданный экземпляр viewController, как и любой другой объект, созданный в памяти... вы присваиваете значение свойства при создании экземпляра объекта. Если вы не имеете в виду фальсификацию обратных вызовов делегатов или что-то еще? TheCodingArt 06.04.2015

xcodeiosmodalviewcontroller

Ответы

Ответ 1 · Andrew

Самый простой способ - определить свойство в модальном VC и присвоить ему индексный путь.

- (void)editView:(id)sender
{
    IDEditVC *secondViewController = (IDEditVC *)[self.storyboard instantiateViewControllerWithIdentifier:@"editvc"];
    secondViewController.selectedIndexPath = yourIndexPath;
}

Где selectedIndexPath - это свойство, которое вы определили для IDEditVC, а yourIndexPath - путь индекса, который вы хотите использовать для заполнения IDEditVC

У вас есть какие-либо проблемы с переходом к этому индексному пути? Вы его где-то сохраняете?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы