iOS: UITableView и кнопка «Назад», как обновить ячейку в родительском представлении? - PullRequest
1 голос
/ 02 марта 2012

Я искал, но не нашел хорошего ответа на этот вопрос:

Это должно быть довольно просто, я перехожу от родительского TableView к дочернему TableView, который реализует только опцию выбора для ячейки в родительском View.

В childTableView я хотел бы вернуть значение, выбранное пользователем в дочернем представлении (выделение одной из ячеек в этом представлении), в родительское представление и обновить "cell.detailTextLabel.text" в родительском представлении. Я могу найти когда нажата кнопка «Назад» в дочернем представлении, но не может найти, как / где обновить ячейку в родительском представлении новым значением, полученным из ячейки дочернего представления.

Мой второй вопрос - как передать данные в родительское представление.

1 Ответ

1 голос
/ 02 марта 2012

Попробуйте следующее

В дочернем представлении определите протокол

// childViewController.h
@protocol ChildDelegate;

@interface childViewController
{
    id <ChildDelegate> delegate;
}

@property (nonatomic, weak) id <ChildDelegate> delegate;
@end // interface

@protocol ChildDelegate <NSObject>
    - (void) selectedData: (NSString*) text;
@end

Отправка данных, когда пользователь выбирает ячейку

// childViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    ...
    // send info the mainViewController
    [self.delegate selectedData: (NSString*) [dataSource objectAtIndex: indexPath.row]];
}

В mainViewController реализуйте этот протокол

- (void) selectedData: (NSString*) text
{
   // retrieve current selected row, and update with text.
}

// не забудьте установить делегат при создании childViewController

child = // create child
child.delegate = self;
// save currently selected row
// push childViewController

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...