Любая помощь приветствуется! Уже несколько дней я бьюсь без результатов.
Сценарий:
В приложениях I и iPad есть SplitViewController, который отображает 2 контроллера-вида (Root слева e Деталь справа)
Root допускает рекурсивную навигацию (дерево, которое может иметь несколько уровней детализации), и я каждый раз вызываю один и тот же класс контроллера (UITableView), помещая его всегда в стек контроллера). Когда пользователь касается ячейки (слева), подробный вид (справа) показывает информацию.
Помните, что контроллер подробного представления не всегда является одним и тем же классом: это означает, что я программно распределяю (и освобождаю) несколько контроллеров detailView в соответствии с видом информации, которую я должен отображать.
Вот фрагмент:
UIViewController <ItemGenericViewController> *newDetailViewController = [[NSClassFromString(cntrClass) alloc] initWithNibName:cntrXib bundle:nil];
//the detailViewController has been defined in the head section as ItemGenericViewController
//each detailViewController is a subclass of ItemGenericViewController
detailViewController = newDetailViewController;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:detailViewController];
// Update the split view controller's view controllers array.
NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, nav, nil];
self.splitViewController.viewControllers = viewControllers;
[nav release];
[viewControllers release];
[detailViewController release];
Все работает нормально, пока не появится предупреждение памяти.
С этого момента, если я пытаюсь отобразить новый detailViewcontroller, «соединение» в SplitViewController между RootController и detailController, кажется, исчезает. Результат: ничего не появляется в правой части splitController.
В то же время, если я перехожу к родительскому уровню в корневом контроллере, ситуация все еще не выполняется.
Для вашего сведения, каждый раз, когда я помещаю в стек новый экземпляр RootController (левый столбец), я выпускаю один и тот же контроллер (чтобы сохранить память как обычно) и подозреваю, что после получения предупреждения о памяти iOS пытается освободить Сама память и моя «история» исчезают и связанное с ними соединение, также через контроллер разделения.
Это кошмар; -)
У вас есть предложения?
Спасибо
Dario