У меня есть UITabBarController, который имеет на одной из своих вкладок UINavigationController.Затем UINavigationController имеет пользовательский UIViewController в качестве основного вида.
На основе IBAction, вызванного кнопкой в пользовательском UIViewController, я помещаю контроллер UITableView в стек UINavigationController следующим образом.(Примечание: это только фрагменты фактического кода).
Заголовочный файл для основного UIViewController:
@interface ATMs : UIViewController <CLLocationManagerDelegate, NSFetchedResultsControllerDelegate, MKMapViewDelegate> {
}
- (IBAction) showLocationList;
@end
Файл реализации для основного UIViewController:
@implementation ATMs
- (void)showLocationList {
LocationList *locationTableController = [[LocationList alloc] initWithNibName:@"LocationList" bundle:nil];
[self.navigationController pushViewController:locationTableController animated:YES];
[locationTableController release];
}
locationTableController
контроллер представления выполняет выборку в Core Data для получения списка объектов и отображает их в таблице.Когда пользователь выбирает строку, я хочу, чтобы произошли следующие вещи:
- выдвиньте
locationTableController
из контроллера навигации, чтобы мой ATMs
контроллер представления был виден - callметод в
ATMs
, передавая объект, представленный строкой, нажатой в locationTableController
Я попытался сделать это, используя [locationTableController setDelegate:self];
в showLocationList
прямо под тем, где I alloc
UITableViewController и добавление UITableViewDelegate
в заголовок для ATMs
.
Но когда я делаю выше, я получаю ошибку сборки, говорящую, что locationTableController
может не отвечать на setDelegate
.