Автоматически детализировать иерархию навигации? - PullRequest
1 голос
/ 29 ноября 2010

У меня есть приложение на основе навигации, которое позволяет пользователю переходить по иерархии.В некоторых дочерних иерархиях есть только один элемент, например,

TopLevel1----->Level2a
TopLevel2   |->Level2b----->Level3a----->Level4a
            |->Level2c    

Вместо того, чтобы пользователь нажимал «Level3a», я просто хочу перейти с Level2b на Level4a, но сохранить представление Level3a всоставлять таким образом, когда пользователь возвращается назад, он виден.

Я нашел здесь некоторый код для имитации касания строки:

Имитация раскрытия подробностей Нажмите кнопку

Когда каждый уровень загружен, я проверяю, есть ли в нем только один элемент.Если это так, я имитирую нажатие строки.Это все работает изначально, и окончательный вид загружается.Но когда я начинаю возвращаться назад по иерархии представлений, у меня возникают проблемы (кажется, что пропущенные представления не загружаются).

Я думаю, что я пытаюсь выполнить довольно просто, поэтому я надеюсь,кто-то здесь может указать мне правильное направление.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2010

Я не уверен на 100%, что это сработает, но я бы так и сделал.

Вы можете напрямую [self.navigationController pushViewController:level4a animated:NO], и когда это будет сделано, установить новый массив viewControllers, navigationController (массив, который включает Level3a).

ВотПример кода, в вас didSelectRowAtIndexPath:

[self.navigationController pushViewController:level4a animated:NO]; //Push the level 4 first
NSMutableArray* mutableViewControllers = [self.navigationController.viewControllers mutableCopy];
[mutableViewController addObject:level3a atIndex:3]; //Add the level 3 manually
self.navigationController.viewControllers = mutableViewControllers;
[mutableViewControllers release];
0 голосов
/ 29 ноября 2010

Вы должны иметь возможность сделать вызов [self.navigationController pushViewController:level4 animated:NO] в методе viewWillAppear для вашего контроллера уровня 3.Это автоматически подтолкнет уровень 4 поверх уровня 3.

Если это случается только время от времени, у уровня 3 может быть свойство указывать, когда происходит такое поведение.

...