ポップオーバーに UITableView があります。ユーザーがポップオーバーで行を選択すると、ポップオーバーを閉じて、セル内のデータを親ビュー コントローラーの変数に保存したいと考えています。これを行う最も効率的な方法は何ですか?
質問する
2989 次
3 に答える
4
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
このメソッドでは、ユーザーの選択を処理します。ビュー コントローラ間で変数を渡す方法については、ray UITableView
wenderlich のViewController
すばらしいチュートリアルを参照してください。
于 2013-03-11T15:13:29.750 に答える
3
ポップオーバーのテーブル ビュー コントローラーでデリゲートを作成し、変数をセル データとして渡す ポップオーバーのテーブル ビュー コントローラーの .h
@protocol PopoverTableViewControllerDelegate <NSObject>
- (void)didSelectRow:(NSString *)cellDataString;
@end
@interface PopoverTableViewController : UITableViewController
@property (strong, nonatomic) id<PopoverTableViewControllerDelegate> delegate;
@end
.m の didSelectRowAtIndexPath でデリゲートを呼び出し、セル データ変数を次のように渡します。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.delegate didSelectRow:cellDataString];
}
- (void)dealloc
{
[super dealloc];
[_delegate release];
}
.h の親ビュー コントローラーに実装し、PopoverTableViewControllerDelegate を次のように実装します。
@interface ParentViewController : UIViewController <PopoverTableViewControllerDelegate>
@property (strong, nonatomic) NSString *cellDataString;
@end
そして.mでデリゲートを次のように実装します
- (void)dealloc
{
[super dealloc];
[_cellDataString release];
}
PopoverTableViewController *popoverTableViewController = [[[PopoverTableViewController alloc] init] autorelease];
popoverTableViewController.delegate = self;
- (void)didSelectRow:(NSString *)cellDataString
{
self.cellDataString = cellDataString;
[popOverController dismissPopoverAnimated:YES];
}
于 2013-03-11T16:55:57.973 に答える
0
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ParentViewController *parent = [[ParentViewController alloc] initWithNibName:@"ParentViewController" bundle:nil];
parent.variable = //do something you want
[self.navigationcontroller pushViewController:parent animated:YES];
}
このような何か...これが役立つことを願っています...
于 2013-03-11T15:20:17.837 に答える