Вызов методов между контроллерами представления с использованием раскадровки - PullRequest
0 голосов
/ 12 июня 2011

Я уже читал пост. Передача данных в представления с использованием раскадровок, но все еще возникают проблемы с вызовом методов:

Теперь у меня есть AViewController и BViewController, оба связаны с раскадровкой (без XIB).

В BViewController:

-(void)doSth:(int)num;

Так как я могу вызвать метод doSth: в AViewController?

Старый способ, такой как [bViewController doSth:123];, не работает, потому что я не могу получить экземпляр BViewController в раскадровке.

Спасибо.

Пик

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Я нашел, если я использую:

MapViewController *mapView = [self.storyboard instantiateViewControllerWithIdentifier:@"MapView"];

(«MapView» - это идентификатор, который я установил для этой сцены / представления в раскадровке)

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

mapViewController *mapView = [[mapViewController alloc] initWithNibName:@"mapViewController" bundle:[NSBundle mainBundle]];

я могу напрямую вызывать методы в MapViewController, иначе

[mapView testMethod];
1 голос
/ 31 октября 2011

Вам необходимо реализовать метод prepareForSegue:sender: в вашем контроллере представления. Первый параметр - это объект UIStoryboardSegue, который имеет ссылки как на исходный, так и на целевой контроллер представления. Это должно позволить вам сделать ваш [bViewController doSth:123]; почти так же, как и раньше.

...