Ios я запутался о результатах, которые я получаю при передаче данных из выбранной строки таблицы в viewcontroller - PullRequest
0 голосов
/ 17 января 2012

Почему в DetailViewController NSLogs в viewDidLoad возвращают Label и (null) соответственно, но в IBAction они возвращают ожидаемые значения из выбранной строки?Как получить правильные значения и в viewDidLoad?

TableViewController

- (void)tableView:(UITableView *) tableView didSelectRowAtIndexPath:(NSIndexPath *__strong)indexPath {
    DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"Detail"];
    [self.navigationController pushViewController:detail animated:YES];
    NSUInteger row = [indexPath row];
    detail.selected1.text = [array1 objectAtIndex:row];
    detail.selected2 = [array2 objectAtIndex:row];    }

DetailViewController

-(void) viewDidLoad
{
    NSLog(@"Log: %@", selected1.text);
    NSLog(@"Log: %@", selected2);

}

- (IBAction) test:(id)sender
{
NSLog(@"Log: %@", selected1.text);
    NSLog(@"Log: %@", selected2);
}

1 Ответ

0 голосов
/ 17 января 2012

viewDidLoad вызывается в результате загрузки контроллера представления (то есть, intIntitiateViewControllerWithIdentifier :).Таким образом, к тому времени, когда вы устанавливаете свои метки, viewDidLoad уже был запущен и вернулся.Попробуйте вместо этого поместить свои операторы регистрации в viewDidAppear.

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