1

したがって、3 つの名前を表示するポップアップ テーブル ビューがあります。私が取得しようとしているのは、ユーザーがポップアップ テーブルから名前を選択すると、ポップアップが閉じられ、元のビュー コントローラーのラベルまたはテキスト フィールドにその名前が表示されることです。これが私がこれまでに持っているものです:

(selectedName は、元のビューコントローラーにあるラベルの名前です)

- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    selectedName.text = cell.textLabel.text;



}

セルがクリックされたときにポップアップが消える方法も探しています。何か案は?

EDIT:(セルラベルテキストを設定するためのコード)

cell.textLabel.text = [[myArray objectAtIndex:indexPath.row] objectForKey:@"Name"];
4

1 に答える 1

1

できることは、テーブルビューがプレゼンターとの通信に使用できるプロトコルを定義することです。これは一般的な方法です。

これは大まかな例です:

@protocol MyTableViewDelegate<NSObject>
-(void)myTableView:(TheTableViewClass *)tableView didSelectValue:(NSString *)value;
@end

@interface TheTableViewClass : UITableViewController
@property (nonatomic, assign) id<MyTableViewDelegate> d;
@end


@implementation TheTableViewClass
@synthesize d;
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [self.d myTableView:self didSelectValue:cell.textLabel.text];
}
@end


@implementation MyPresenter
-(void)present
{
    self.myTableViewClass = [MyTableViewClass ....];
    self.myTableViewClass.d = self;
    //present myTableViewClass...
}
-(void)myTableView:(TheTableViewClass *)tableView didSelectValue:(NSString *)value
{
    //Set some label to the value passed in
    //Dismiss self.myTablViewClass
}
@end

追加資料:プロトコルの操作

于 2013-02-08T19:05:37.477 に答える