2012-04-11 10 views
3

この問題では、テーブルビュー上のセルをプログラマチックに選択して、自動的に関連するセグエ。私は関連するtableviewcontrollerのviewWillAppearでこれを行うコードを持っています。テーブルビュー上のセルをプログラムで選択すると、関連するセグが実行されません

結果はセルが選択されていますが、セグは実行されません。なぜなのかご存知ですか?ところで...

をモーメントによって

は、私は問題を解決するためにviewWillAppearにプログラムでセグエを行っていますが、私は、セルが選択されている場合セグエが自動的に実行されていない理由について好奇心が強いです。セルタップを選択すると正しく動作するので、セグはOKでなければなりません。

詳細情報:私はsplitviewcontrollerに取り組んでいます。左側にtableviewcontrollerがあり、segueが右側にviewcontrollerを表示します

ありがとうございます!

カルロス

関連コード:

- (void) viewWillAppear:(BOOL)animated 
{ 
[super viewWillAppear:animated]; 

// Si no hay ninguna fila seleccionada, seleccionaremos la primera 

// Obtenemos la fila seleccionada 
NSIndexPath *filaSeleccionadaPath = [self.tableView indexPathForSelectedRow]; 

// Si no hay ninguna fila seleccionada 
if (!filaSeleccionadaPath) 
{ 
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
    [self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 

} 

}

+0

コードスニペットが必要ですか? –

+0

あなたは試しましたか:[cell setSelected:YES animated:YES]; – CarlJ

+0

[cell setSelected:YES animated:YES]と同じ結果です。 – Carlos

答えて

6

UITableView上のドキュメントは指定していますのtableViewを受け取るためにデリゲートを起こさない、このメソッドを呼び出すと

:willSelectRowAtIndexPath:またはtableView:didSelectRowAtIndexPath:メッセージ、またはUITableViewSelectionDidChangを送信しませんオブザーバーへの通知通知。

このようにしても、アクションは実行されません。セグを使用している場合は、UIViewControllerクラス(おそらくself)でperformSegueWithIdentifier:sender:を使用します。識別子と送信要素(おそらくセル)を指定することができます。

+0

よろしいですか。どうもありがとう! – Carlos

関連する問題