3

ポップオーバーに UITableView があります。ユーザーがポップオーバーで行を選択すると、ポップオーバーを閉じて、セル内のデータを親ビュー コントローラーの変数に保存したいと考えています。これを行う最も効率的な方法は何ですか?

4

3 に答える 3

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

このメソッドでは、ユーザーの選択を処理します。ビュー コントローラ間で変数を渡す方法については、ray UITableViewwenderlich の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 に答える