У меня есть ячейка табличного представления с кнопкой, которая при нажатии должна вызывать метод другого контроллера представления.Я следовал этому учебному пособию , в котором показан один из способов получить доступ к другому контроллеру представлений в раскадровках, но он требует жесткого кодирования положения контроллеров представлений.Каждый раз, когда я меняю порядок своих контроллеров представления, мне нужно обновлять свой код, который, как я знаю, испортит.
Вот их метод:
UITabBarController *tabBarController = (UITabBarController *)
self.window.rootViewController;
UINavigationController *navigationController =
[[tabBarController viewControllers] objectAtIndex:0];
PlayersViewController *playersViewController =
[[navigationController viewControllers] objectAtIndex:0];
playersViewController.players = players;
Yikes, что это ?!Мы хотим присвоить массив Players свойству Players проигрывателя PlayersViewController, чтобы он мог использовать этот массив в качестве источника данных.Но делегат приложения пока ничего не знает о PlayersViewController, поэтому ему придется пролистать раскадровку, чтобы найти его.Это одно из ограничений раскадровок, которое меня раздражает.В Интерфейсном Разработчике у вас всегда была ссылка на Делегат приложения в вашем MainWindow.xib, и вы могли устанавливать соединения между контроллерами представления верхнего уровня и выходами на Делегате приложения.В настоящее время это невозможно с раскадровками.Вы не можете делать ссылки на делегат приложения из ваших контроллеров представления верхнего уровня.Это печально, но мы всегда можем получить эти ссылки программно.
Кто-нибудь знает более понятный способ?
Я попытался создать IBOutlet в своей ячейке табличного представления для другого контроллера представления,но по какой-то причине я не могу нажать и удерживать клавишу Ctrl и перетащить на другой контроллер представления.
Я также попытался установить IBAction моей кнопки в другом контроллере представления, но мне нужно знать, какая строка была нажата,и единственная информация, которую я могу получить от -(IBAction) addButtonClicked:(id)seder
, - это sender
информация, которая просто RectButton
.
Спасибо!