2011-08-06 9 views
2

私はこれを2日間今作業していますが、把握できないようです。私は何か非常に基本的なものを逃していると思います。UITableviewControllerテーブルビューへの参照を失う

AのUIViewControllerをアプリのルートコントローラとして:

は、ここで私が持っているものです。 ContainerView、私は私のルートコントローラビューに追加するUIViewのサブクラスです。 その中で私はUITableViewが欲しいです。

いくつかの異なるコンテナがあるので、それぞれ異なるNibがあります。

Heresはどのように配線されていますか:コンテンツ付きのNibは、そのファイルの所有者としてコンテナを持っています。 UITableViewへのコンセントがあり、ソースとデリゲートとしてコンテナがあります。

コンテナはプロトコルメソッドを実装します。

今、私はUITableViewでreloaddataを呼び出すことができません。これはnilだからです。私はconsoloにpoとタイプし、0x0と書かれていますが、なぜか分かりません。

私はさまざまなアプローチを試みてきましたが、すべてがtableViewへの参照を失うことになりました。

私が作成した最初のテーブルビューではありませんが、ここで間違っていることには何の手がかりもありません。

何かお手伝いください!!!!

コード:

これは私のアウトレットです:

IBOutlet UITableView *contactsTV; 

ファイルの所有者は、それへの接続、テーブルビューのその逆を持っています。

私が行うことでペン先を作成します。

Contentview *v = [[Contentview alloc] initWithFrame:[[contentViewArray objectAtIndex:i] CGRectValue]]; 

をcontentViewArrayが文字列としてFramevaluesをいくつかの配列保存されている間。

[v prepareView]; 

、それは次のようになります: は、それから私はやる

- (void) prepareView { 

NSArray *mediaPlayerViews = [[NSBundle mainBundle] loadNibNamed:@"MyView" 
                  owner:self 
                 options:nil]; 

UIView *v = (UIView *)[mediaPlayerViews objectAtIndex:0]; 
[self addSubview:v]; 
} 
+0

コードを投稿すると、問題を見つけるのがずっと簡単になります。多分あなたはペン先の正しいオブジェクトにtableviewを接続していませんか? – msgambel

+0

いくつかのコードを追加しました。 – Icky

+0

あなたは[self addSubview:v]と言って、ここのUIView、またはUIViewControllerの "self"ですか? – msgambel

答えて

0

はそれが動作するはずUITableViewControllerとしてそれを設定します。

+0

私はこれを行う必要がありますか?私は私がそれを処理する適切な方法だと思った。また、私はUITableViewControllerとしてこれを持っていましたが、同じ問題、参照を失った.....:/ – Icky

+0

さまざまな点でNSLoggingを試して、配列の値をチェックして 'self.tableView'を表示しようとしました – Legolas

+0

このような前にtableviewを追加していました - self.tableview - .....それは正しく現れましたが、反応しましたが、一度すべてが設定されたら、もうアクセスできませんでした... – Icky

0

あなたは

IBOutlet UITableView *contactsTV 

とともにヘッダファイルに設定されたプロパティを持っていますか?

あなたのcontactsTVにセッターメソッドがない場合、あなたのcontactsTVはあなたのオブジェクトによって保持されません。

//header file 
UITableView *contactsTV; 
@property(nonatomic, retain) IBOutlet UITableView *contactsTV; 

//implementation file 
@synthesize contactsTV; 
+0

プロパティが正しく設定または設定されています。 – Icky

2

を使用してコードを置き換えるために

てみだけで同様の問題を経験した - すべてが正しく(Xcodeの4)までの有線が、出口の参照がnilだっ登場しました。

ファイルを作成したとき、私はUITableViewControllerの "New File" - >サブクラスを使用しました。 NIB(自動)プロセスでファイルを設定します。この結果、コントローラはUITableViewControllerとして宣言され、NIBにはルートとしてのUITableViewがありました。

TableDataSourceとTableDelegateメソッドが期待通りに呼び出されましたが、NibがロードされたときにTableViewのコンセントが決して設定されませんでした。

これを解決するには、基本的にコントローラをUITableViewControllerのサブクラスからUIViewControllerだけに変更して、それに応じてNIBを設定する必要がありました:NIBをクリアし、UIViewを子としてUITableViewを追加し、 、TableView、TableDataSource、およびTableDelegate)、すべてが計画どおりに機能しました。

NIBでUITableViewのサブクラスを作成すると、これがXCodeのバグである可能性があります。

関連する問題