/ / UITableViewController вътре в UIViewController - iphone, uiviewcontroller, uitableview, iboutlet

UITableViewController вътре в UIViewController - iphone, uiviewcontroller, uitableview, iboutlet

Работя по проект за Iphone. Имам в историята myViewController съдържащи малко UILabels и a UITableView, Споменатите UITableView се отнася в клас myViewController от IBOutlet:

IBOutlet UITableView *myTable;

Сега създавам UITableViewController (myTableViewController), че искам да попълвам myTable. След това се връщам в myViewController и разпределям тук myTableViewController:

MyTableViewController *myTableViewController = [[MyTableViewController alloc] init];
myTableViewController.tableView = myTable;
myTableViewController.tableView.delegate = myTableViewController;
myTableViewController.tableView.dataSource = myTableViewController;

Не работи (грешка в EXC_BAD_ACCESS). Обикновено трябва да попълвам myTable чрез UIViewController (като се уверя, че отговаря на nedeed протоколи). Но аз наистина се чудя дали мога да направя това, което направих точно горе.

Отговори:

0 за отговор № 1

Повечето случаи можете да решите това, като създадетеUIViewController и препратка към таблицата вътре в ViewController, използвайки IBOutlet. Има обаче случаи, в които се нуждаете от пълен разперен UITableViewController, например в основни данни, и бихте искали също така да добавите неща като UIToolbars. Знам, че много пъти можете да пробиете UINavigationController, но понякога не искате йерархия / стека. В такъв случай, съвсем рядко, един от начините да направите това е да създадете подклас UITableViewController. да го инициализирате във вашия клас UIViewController, да създадете изход от tableView, който се намира във вътрешността на сцената на UIViewController и след това да присвоите свойството tableView на UITableViewController в изхода tableView на UIViewController.

self.instanceOfUITableVC.table = self.tableView

Това е малко сложно, но работи. Сега можете да контролирате таблицата с помощта на подклас UITableViewController.