私はあなたにpopOver Tableviewコントローラを提供するアプリケーションを持っています。このpopOverにはn個のセルがあります。 Popover内のテーブルセルの1つに触れるたびに、メインビューで関数を呼び出す必要があります。それをどうやってやりますか?Popover UITableViewController mainViewのトリガーアクション
それは、セルをタッチしたら、あまりにもポップオーバーを却下することにいいだろう....
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Cell check %@", [totalArray objectAtIndex:indexPath.row]);
[self dismissPopoverAnimated:YES];
}
ここでは、コンソールにセル内のテキストを出力しますが、私のことができるようにする必要がありますそのセルのテキストをメインビューに戻して...ああ、そして、[self dismisspopoveranimated:yes]がうまくいかない...
私はブロックの使用について知っていることに興味があります。私に何かを提案できますか? –
このアプローチのブロックを使用する要点は、デリゲートプロトコルを作成してそれをテーブルビュークラスに渡す代わりに、ブロックタイプをtypedefし、そのタイプのブロックをテーブルビュークラスに渡すことです。デリゲートオブジェクトでデリゲートメソッドを呼び出すのではなく、テーブルビュークラスが "メイン"ビューコントローラにコールバックする必要があるときは、単にブロックを呼び出します。 Objective-Cブロックのベスト・イントロダクションの1つはhttp://thirdcog.eu/pwcblocks/です。 – erikprice
ありがとうございます。たとえば、セル内でブロックプロパティを作成することができます。その後、テーブルビューのコントローラから、そのブロックプロパティからメソッドを設定することができました。次に、セルからコントローラにデータを渡したいときに、そのブロックメソッドをセルから呼び出すことができます。そうですか?特定のセルを更新するために使用できる行インデックスはどうですか?ブロックプロパティについては、コピーポリシーでそれを定義するのは正しいですか? P.S.あなたの答えは非常に良いので、私はそれを更新しました。 –