2012-01-16 12 views
1

は、私がのUITableViewController自己はどのように継承されていますか? iOSのSDKを使用して

@interface MyViewController : UITablewViewController 

@end 

のサブクラスのUITableViewControllerのデータソースとデリゲートのプロパティが自動的にMyViewControllerに設定されますがあります。

なぜこのようなことが起こるのか分かりません。私はそれが初期化され、サブクラスではなく、 'self'がUITableViewControllerインスタンスになると思った。

デリゲートとdataSourceがUITableViewControllerではなく、サブクラスをどのように指しているか説明するのに役立つ人がいますか?

おかげ

+0

は、私たちにいくつかのコードを教えてくださいあなたは自分のために何をするのかを見ることができます。 –

答えて

1

私は非常に簡単な言葉でそれを置くしようとしなければならない。

  1. あなたののUITableViewControllerのサブクラスのオブジェクトを作成していないのUITableViewController自体のされています。

  2. あなたの代理人とデータソースは、画面上にテーブルビューを置いているviewControllerをポイントします(これは通常行われます)。

  3. これで、すべてのdelegateメソッドとdataSourceメソッドがこのviewControllerから呼び出されます。

アップルからthis sample codeをご覧ください。うまくいけば、これでより明確になるはずです。

0
自己にMyViewController
でのUITableViewControllerのオブジェクトを2.MakeのUIViewController
から 3セットデリゲートとデータソースのプロパティをthis-

1.Inherit MyViewControllerのようにコードを変更し

コード:

MyViewController.h

@interface MyViewController : UIViewController 

    @end 

MyViewController.m私はそれはあなたを助けると思う

@implementation MyViewController 
     -(void)viewDidLoad{ 
     UITableViewController *tableView = [[UITableViewController alloc]init]; 
     tableView.delegate = self; 
     tableView.datasource = self; 
     } 

     ---------- 
    @end 

...

関連する問題