1

私はiPhoneプロジェクトに取り組んでいます。ストーリーボードには、いくつかの とがmyViewController含まれています。上記は IBOutlet によって myViewController クラスで参照されます。UILabelUITableViewUITableView

IBOutlet UITableView *myTable;

次に、myTable に入力する UITableViewController (myTableViewController) を作成します。次に、myViewController に戻り、ここに myTableViewController を割り当てます。

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

機能していません (EXC_BAD_ACCESS エラー)。通常、UIViewController を介して myTable にデータを入力する必要があります (必要なプロトコルに準拠していることを確認してください)。しかし、私は私が上でやったことをすることができるかどうか本当に疑問に思っています..

4

1 に答える 1

0

ほとんどの場合、UIViewController を作成し、IBOutlet を使用して ViewController 内のテーブルへの参照を作成することで、これを解決できます。ただし、コア データなどで本格的な UITableViewController が必要な場合や、UIToolbars などを追加する機能も必要な場合があります。多くの場合、UINavigationController をハッキングできますが、階層/スタックが必要ない場合もあります。このような場合、確かにかなりまれですが、これを行う 1 つの方法は、UITableViewController サブクラスを作成することです。UIViewController クラスにインポートして初期化し、UIViewController の nib/scene 内にある tableView からアウトレットを作成してから、UITableViewController の tableView プロパティを UIViewController の tableView アウトレットに割り当てることができます。

self.instanceOfUITableVC.table = self.tableView 

少し複雑ですが、うまくいきます。これで、UITableViewController サブクラス インスタンスを使用して tableView を制御できるようになりました。

于 2013-10-12T17:25:20.350 に答える