2011-06-25 11 views
0

nibファイルを作成しましたが、すべての接続が正しく行われました。アプリケーションを実行してセルを選択すると、新しいペン先はまったく開きません。助けてください!セルが選択された後でビューのペン先が開かないのはなぜですか?

- (void)tableView:(UITableView *)tableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    //Get the selected country 
NSString *selectedCountry = [[NSString alloc] initWithFormat:@"you pressed for this."]; 

//Initialize the detail view controller and display it. 
DetailViewController *dvController = [[DetailViewController alloc] 
             initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]]; 

dvController.selectedCountry = selectedCountry; 
[self.navigationController pushViewController:dvController animated:YES]; 
[dvController release]; 
dvController = nil; 

} 
+0

'selectedCountry'をリリースするか、あなたがリークします。それはナビゲーションコントローラにありますか? 'pushViewController:animated:'メソッドの直後に 'NSLog(@"%@%@ "、self.navigationController、dvController);を実行し、結果をお知らせください。 –

+0

あなたは間違いますか? 'dvController = nil;'は、以前にメモリからdvControllerを削除したので必要ありません。 – sherilyn

+0

@Deepak、DetailViewController.mでselectedCountryをリリースしました。 – Jovany

答えて

0

これを試してみてください:


DetailViewController *dvController = [[DetailViewController alloc] 
             initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]]; 

dvController.selectedCountry = selectedCountry; 
[self.navigationController pushViewController:dvController animated:YES]; 
dvController = nil; 
+0

メモリ管理ルールを遵守するには、公開が必要です。 –

0

は両方dvControllerを解放しnilにそれを設定しないでください - だけいずれかを実行します。

+1

これを繰り返して、メモリ管理ルールを遵守するには、リリースが必要です。 'nil'-ingは不要です。 –

3

NSLogステートメントの出力が記録されていないため、nullまたは何らかのオブジェクト値が記録されているように、delegateが正しく設定されていないように見えます。 IBの接続を再チェックする必要がありますか、それともプログラムで行ったのですか?tableView.delegate = self;

0

listviewcontrollerからdetailvewcontrollerをロードしようとしていますか?テーブルビューはlistviewcontrollerのメンバです。

考えられる原因あなたが他のviewcontollersにサブビューとしてlistviewcontroller.viewを追加する場合は

は、表示

[self.navigationController pushViewController:dvControllerはアニメーション:YES];動作しません。

だから、あなたのアプリケーションデリゲートのインスタンスを取得し、次を実行する必要があります。

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate]; 

[appDelegate .navigationController pushViewController:dvController animated:YES]; 

これを確認してください。これがあなたの問題の理由でない場合は、Deepakがあなたに尋ねたコンソールの出力を教えてください。

関連する問題