iOS: Objcetive C - изменение значений self.navigationController.viewControllers - PullRequest
0 голосов
/ 05 марта 2019

В моем iOS-приложении я удалил некоторые контроллеры представления и сбросил на self.navigationController.viewControllers, но он вернул неправильное значение.

Ниже мой код:

int homeCount = 0;
NSMutableArray *navigationArray = [[NSMutableArray alloc]init];
NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers]; //here tempArray = 5
for (UIViewController *controller in self.navigationController.viewControllers) {
    if ([controller isKindOfClass:[SearchRoomViewController class]]) {
        [tempArray removeObject:controller];
    }
    if ([controller isKindOfClass:[HomeViewController class]]) {
        homeCount = homeCount + 1;
        if(homeCount > 1){
            [tempArray removeObject:controller];
        }
    }
}
//now tempArray = 3

self.navigationController.viewControllers = nil;
[self.navigationController setViewControllers:tempArray animated:NO];

navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers]; //here navigationArray returns 5

Почему self.navigationController.viewControllers не установлены на 3?

Пожалуйста, помогите.

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