2012-03-29 17 views
1

私は、購入可能な商品のリストを表示するアプリを持っています。リストのビューコントローラは、次のようになりますビューコントローラのUITableViewへの参照を取得するにはどうすればよいですか?

@interface InAppPurchaseListUIItemViewController : 
UIViewController <UITableViewDelegate, UITableViewDataSource> { 
    IBOutlet UITableView *_inAppPurchaseListTable; 
. 
. 
. 
} 
. 
. 
. 
@end 

このリストを表示するコードである:

_inAppPurchaseListUIItemViewController = [[InAppPurchaseListUIItemViewController alloc] 
    initWithItemList: [[InAppPurchaseManager getInstance] getAuthorisedInAppPurchaseProducts] 
    :     self 
    andSelector:  @selector(inAppPurchaseSelected:) 
]; 

_inAppPurchaseListCustomUIView= [[InAppPurchaseListCustomUIView alloc] 
    initWithFrame:CGRectMake(0, 0, inapp_purchase_table_width, inapp_purchase_table_height)]; 

[_inAppPurchaseListCustomUIView addSubview:_inAppPurchaseListUIItemViewController.view]; 
_inAppPurchaseListUIItemViewController.view.frame = _inAppPurchaseListCustomUIView.frame; 

InAppPurchaseListCustomUIViewサブクラスUIViewが、そうでなければ空のクラスです。

ビューコントローラと同じ名前の.xibもあります。 .xibにはテーブルビューしか含まれていないようです。

リストは表示されますが、表示される項目を変更したいと思います。私はNSMutableArrayテーブルを支持している。配列を変更すると、UITableViewを新しい配列で再描画する必要がありますが、_inAppPurchaseListTableは常にゼロです。

  • reloadDataと呼ぶことができるように、UITableViewへの参照を取得するにはどうすればよいですか?
  • とにかく.xibを取り除くことはできますか?私はテーブルビューを保持するだけの何もしない余分なファイルのポイントを見ません。

接続インスペクタ
enter image description here

+0

'_inAppPurchaseListTable'をxibファイルに接続しましたか? – Scar

+0

.xibでは、接続インスペクタを使用して、どのコンセントをテーブルビューにリンクしていますか? ...特に "アウトレットの参照"セクションで?また、initWithItemList:メソッドはどのように見えますか? –

+0

@Scar、どうすればいいですか? – Jay

答えて

2

私はついにそれを考え出しました。答えはTable View Programming Guide for iOSの43ページにあります。

私は、ビューコントローラにこれを追加する必要があります。

- (void)loadView 
{ 
    tableView = [[UITableView alloc] 
     initWithFrame: [[UIScreen mainScreen] applicationFrame] 
     style:   UITableViewStylePlain 
    ]; 

    tableView.autoresizingMask = 
     UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 

    tableView.delegate = self; 
    tableView.dataSource = self; 
    [tableView reloadData]; 
    self.view = tableView; 
    [tableView release]; 
} 

それから私は、ビューコントローラに.xibを削除し、IBOutlet。

テーブルビューを[tableView reloadData];でリロードすることができます。そして私は.xibは必要ありません。

+0

そうでなければ、.xibまたはIBを使用しないでください。それは物事をより困難にします。 –

関連する問題