Передача данных с делегатом, но все равно ноль, почему? - PullRequest
0 голосов
/ 15 сентября 2018

Я сделал 2 viewcontrollers и реализовал на вкладке контроллера.Я передал некоторые данные из A vc в B vc с использованием делегата.Когда я проверил журнал, он показал мне правильное значение.Но когда я перешел на B vc, значение, которое я передал, было ноль.(значение для таблицы.) Вот мой код.

    in A vc

    -(void)passData {

        NSMutableDictionary *infoDic = [[NSMutableDictionary alloc] init];
        [infoDic setObject:url forKey:@"file_url"];
        [downloadArr addObject:fileInfoDic];

        [Bvc getDataFromA:downloadArr];
        [Bvc reloadTableView];        
    }

    in B vc

  -(void)getDataFromA:(NSMutableArray *) downloadArr{
        self.downloadArr = [downloadArr mutableCopy];
        NSLog(@"my download list%@", self.downloadArr); // This time was ok.
}
    - (void)viewWillAppear:(BOOL)animated{
        [super viewWillAppear:animated];

        NSLog(@"Array status %@", self.downloadArr);//This time it showed me nil
        [self.tableView reloadData];
    }

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Проверьте, как вы переходите на B-VC, и совпадает ли экземпляр (B-VC), который вы использовали в A -VC, с самим собой в методе B-VC «viewWillAppear». Кажется, когда вы переходите на B-VC, был создан новый экземпляр.

Или вы можете реализовать метод setDownloadArr, записать значение в журнал и показать, когда значение станет равным nil.

0 голосов
/ 15 сентября 2018

Чтобы массив был напечатан внутри viewWillAppear без nil

NSLog(@"Array status %@", self.downloadArr);//This time it showed me nil

вам нужно дать ему значение, прежде чем показывать bVC из aVC, что бы вы ни использовали present / segue / push, также не забудьте объявить его как strong, вам нужно сделать это

bvc = [[self.tabBarController viewControllers] objectAtIndex:1]; 
[bvc loadViewIfNeeded];
[bvc getDataFromA:downloadArr];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...