popViewController iphone - PullRequest
       2

popViewController iphone

0 голосов
/ 26 декабря 2011

Можно ли удалить контроллер представления из стека навигационных контроллеров, не используя подобный код

[mynavigationController popViewControllerAnimated:YES];

любая помощь будет оценена.

Ответы [ 3 ]

1 голос
/ 26 декабря 2011

@ Риши почти есть.Вам необходим изменяемый массив для редактирования

NSMutableArray *activeControllerArray = 
    [self.navigationController.viewControllers mutableCopy];

[activeControllerArray removeObjectAtIndex:indexToRemove];
// If you still have a handle to the viewcontroller you could use other methods like removeObject:

self.navigationController.viewControllers = activeControllerArray;

Фрагмент из UINavigationController docs

@ свойство (неатомное, копировать) NSArray * viewControllers

... Назначение нового массива контроллеров представления этому свойству эквивалентно вызову setViewControllers: animated: метод с анимированным параметром, установленным в NO.

1 голос
/ 26 декабря 2011

Я не знаю, как удалить контроллер представления из контроллера представления контроллера навигации, но если вы хотите пропустить конкретный вид при возврате, попробуйте этот

-(void)goToMainCategoryView
{
    id object = nil;

    for (UIViewController *viewControl in self.navigationController.viewControllers)
    {
        if(viewControl.view.tag == 0)
        {
            object = viewControl;
        }
    }
    [self.navigationController popToViewController:object animated:YES];
}
0 голосов
/ 26 декабря 2011

Вы можете сделать следующее-

EDIT-

NSMutableArray *activeControllerArray =  [self.navigationController.viewControllers mutableCopy];
[activeControllerArray removeObjectAtIndex:1];

self.navigationController.viewControllers = activeControllerArray;

Также для удаления вы можете создать свою собственную логику, такую ​​как проверка определенного контроллера с помощью метода isKindOfClass, а затем удалить это или все, чтоты хочешь

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