Подтвердить что ты не робот

Передача переменных между контроллерами представлений

Я использую эту функцию для переключения между представлениями в Xcode 4.3.

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

Я хотел бы передать некоторые параметры между страницами. Как я могу это сделать?

4b9b3361

Ответ 1

После performSegueWithIdentifier:sender: ваш контроллер вида вызовет

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

Предполагая, что ваш новый контроллер просмотра имеет некоторые свойства:

if ([[segue identifier] isEqualToString:@"NextView"]) {
    MyViewController *myVC = [segue destinationViewController];
    myVC.propertyToSet = // set your properties here
}

Ответ 3

Вот ответ от Pfitz, но я сделал это немного легче понять для людей, которые новичок в Objective-C, используя пример:

  • В файле destinationViewController.h добавьте параметр свойства для переменной, чтобы получить значение из вашего исходного файла controller.m.

    @property (nonatomic) int billIdReceivingVote;
    
  • Импортируйте файл destinationViewController.h в файл sourceViewController.m:

    // VOLViewController.m
    #import "VOLVoteViewController.h
    
  • Добавьте prepareForSegue метод в файл sourceViewController.m и передайте переменные

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        VOLVoteViewController *myDestinationViewController = [segue destinationViewController];
    
        // myDestinationViewController.variable = sourceViewController variabe
        myDestinationViewController.billIdReceivingVote = [self.idOfBillSelected intValue];
    }