2010-12-05 14 views
1

これは私が試みたものです。画面には何も表示されず、実装するはずのUITableViewメソッドは呼び出されません。プログラムでUITableViewControllerを作成する

-(void)loadView 
{ 
    UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    self.view = view; 
    [view release]; 
} 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UITableViewController *TVC = [[[UITableViewController alloc] 
    initWithStyle:UITableViewStylePlain] autorelease]; 
    CGRect cgRct = CGRectMake(0, 10, 320, 100); 
    UIView *newView = [[UIView alloc] initWithFrame:cgRct]; 
    TVC.view = newView; 
    [newView release]; 
    [self.view addSubview:TVC.view]; 
} 

私はこれをプログラムで行うには良い例とチュートリアルを探しましたが、何もありません。

私が達成しようとしているのは、私のwhoスクリーンを占有していないテーブルです。多分私の画面の3/4が良いでしょう。

多くのおかげ コード

答えて

8

問題は、UIViewControllerであるUITableViewControllerを作成しており、navスタック上にあることが予想されることです。あなたがしたいことは、UIViewであるUITableViewを作成することです。また、テーブルのデリゲートとデータソースを設定していません。これは、カルバックを取得するために必要なものです。

あなたのviewDidLoadは(あなたがコールバックの外のテーブルへのアクセスを必要とするつもりなら、あなたはIVARに保存するのではなく、ローカルに宣言する必要があることに注意してください。この

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UITableView *table = [[[UITableView alloc] initWithStyle:UITableViewStylePlain] autorelease]; 
    table.dataSource = self; 
    table.delegate = self; 
    table.frame = CGRectMake(0, 10, 320, 100); 
    [self.view addSubview:table]; 
} 

ようになるはずですそして、それを保持する必要がありますが、私が何を意味するかをお見せするために、コードのいくつかのより多くの行が必要な場合は、私に教えてください)

0
UIView *newView = [[UIView alloc] initWithFrame:cgRct]; 
TVC.view = newView; 

私はあなたにヒントを与えるでしょう。ここでは、空のビューへのUITableViewControllerのビューを設定している...

1

は、これらのメソッドのいずれも呼び出されない得ている理由です

TVC.delegate = self; 

で、あなたはTVCのデリゲートを設定していることを確認します。また、あなたはビューコントローラを初期化するとき、これはすでに起きても、同様に重要な、TVC.viewを設定しない

@interface YourViewController : UIViewController <UITableViewDelegate> { 
    //declare variables here 
} 

にあなたのクラスは、あなたのインターフェイス宣言を変更してUITableViewDelegateプロトコルを実装してください。空のビューに設定しているだけなので、何も表示されません。

1

iOS7はテーブルビューをinit'ingのこの方法を好むようだ:。

//make tableview 
UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(0, 81, 200, 200) style:UITableViewStylePlain]; 
table.dataSource = self; 
table.delegate = self; 
[self.dataView addSubview:table]; 

それを試してください。誰かを助けることを願っています。

関連する問題