Как перезагрузить UITableViews после возвращения из dismissmodalView - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть приложение, которое загружает три таблицы с данными из массивов, которые загружаются из основных данных при запуске. Пользователь может нажать кнопку, чтобы открыть другую страницу, с помощью которой он может редактировать сохраненную информацию. Когда они завершены, их изменения сохраняются и передаются обратно в основные данные, и пользователь возвращается на домашнюю страницу, чтобы, надеюсь, просмотреть их изменения. Однако данные не перезагружаются в таблицы. Я пытался [srcTableView reloadData]; без удачи.

Способ, которым это работает, состоит в том, что таблицы заполняются из массивов, которые загружаются из основных данных при вызове из viewWillAppear. Я вижу, что правильная информация хранится в массиве, но в массиве, но когда вызывается метод reloadData, изменений нет. Однако, когда приложение перезапускается, соответствующие данные отображаются в таблицах. Я предполагаю, что это какая-то проблема экземпляра, когда экземпляр таблиц, которые я загружаю, не тот экземпляр, который отображается ... так или иначе. Я не совсем уверен, как сказать.

Добавленный

Я пробовал reloadData безрезультатно. Вот некоторый код:

Создавая таблицы

In -loadView

setTable = [[[MPIViewController alloc] initWithFrame:CGRectMake(kFrameX, 0, 1024, 768) TableData1:Data1 TableData2:Data2 TableData2:Data3]autorelease];

Открытие второго вида:

-(IBAction)OpenOptions:(id)sender{

// Create the modal view controller
MPIViewController *viewController = [[MPICreateViewController alloc] initWithNibName:@"MPICreateViewController" bundle:nil];

// We are the delegate responsible for dismissing the modal view 
viewController.delegate = self;

// Create a Navigation controller
UINavigationController *navController = [[UINavigationController alloc]
                                         initWithRootViewController:viewController];
    // show the navigation controller modally
[self presentModalViewController:navController animated:YES];

// Clean up resources
[navController release];
[viewController release];
}
- (void)didDismissModalView {

// Dismiss the modal view controller
[self dismissModalViewControllerAnimated:YES];

}

Я также создал протокол для modalViewControllerDelegate. Не уверен, какой код будет наиболее эффективным для публикации, кроме этого.

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Ваш контроллер вида получит сообщение -viewWillAppear:, когда модальный контроллер вида, охватывающий его, собирается быть закрытым.Это обычно, где вы должны позвонить на -reloadData.Другими словами:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [srcTableView reloadData];
}

Вы должны убедиться, что srcTableView фактически где-то устанавливается;судя по всему, вы создаете экземпляр другого контроллера представления - MPIViewController - в вашем -loadView, что неортодоксально и, вероятно, не то, что вы хотите делать.

0 голосов
/ 21 сентября 2011

вы можете использовать `[srcTableView reloadData]; в методе viewWillAppear

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