Багги навигационные контроллеры, портирование приложения iPhone на iPad - PullRequest
0 голосов
/ 28 июля 2010

У меня довольно простое приложение для iPhone, которое я хочу запустить как на iPhone, так и на iPad.Я хотел бы, чтобы версия для iPad была более крупной версией для iPhone, увеличенной или уменьшенной - я работаю над версией приложения для iPad, которая лучше использует интерфейс, но хотела бы сделатьуверен, что у моих существующих клиентов что-то есть.

Приложение представляет собой простое приложение на основе вкладок, а внутри каждой вкладки находится контроллер навигации, который представляет представление таблицы, каждый из которых может развернуть пару слоев,Все в основном работает - у меня есть несколько экземпляров представлений, которые не заполняют доступное пространство, но я могу это исправить.Моя самая большая проблема сейчас заключается в том, что навигационные контроллеры повсеместно ломаются, когда я пытаюсь их использовать.Как только я сверну один или два уровня ниже, я не смогу вернуться снова.

Позвольте мне попытаться объяснить более подробно:

Одна вкладка начинается с "таблица "год", показывающая все годы, в которых есть записи;если вы нажмете на год, будет отображено другое табличное представление со всеми месяцами в этом году, в которых есть записи;если вы нажмете на месяц, то появится другое табличное представление, в котором показаны отдельные записи;если вы нажимаете на запись, она выдвигает представление (UIWebView, с некоторыми дополнительными виджетами), в котором отображаются детали записи.

Каждое нажатие выполняется с [self.navigationController pushViewController: foo animated: YES].Три упомянутых выше контроллера табличного представления созданы из одного и того же пера (фактически, все , помещенное в контроллер навигации в любой вкладке, загружается из одного и того же пера).Поскольку я знаю, что существует только три уровня навигации, я просто выделил три идентичных контроллера представления и использую один, два или три в зависимости от количества записей.

Отключение этих контроллеров с помощью «назад»Кнопка, кажется, повсеместно испортит состояние контроллера вида.Поэтому, если я перейду к третьему представлению, показывающему все за один месяц, я не смогу вернуться обратно к первому виду: кнопка «Назад» перестает работать, если я поднимаюсь на один уровень.

Еще один пример на другой вкладке: это одно табличное представление, на котором вы можете нажать любую запись, и будет выдвинут новый контроллер представления, который показывает детали этой записи.Если я коснусь записи, коснитесь кнопки «Назад», а затем коснитесь записи еще раз, кнопка «Назад» не появляется, или иногда появляется текст , который помещается внутрь кнопки «Назад», но нетпоявляется кнопка!

Такое поведение происходит, если я пытаюсь запустить приложение iPhone в масштабированном режиме (построено с использованием базового SDK 4.0, поддерживающего ОС 3.2) или в собственном режиме (построено с использованием базового SDK 3.2).На iPhone работает без проблем.Я немного растерялся, потому что этот материал всегда «просто работал» из коробки, в основном из настроек по умолчанию, которые были установлены еще при первом создании проекта.

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

Кто-нибудь сталкивался с такой проблемой, илипредложить что-то, что может быть, или какой-нибудь лучший способ отладить происходящее?

1 Ответ

0 голосов
/ 14 августа 2010

Проблема заключалась в том, что у меня была категория в NSMutableArray, в которую были добавлены стековые методы push и pop.Удаление этого класса категории исправило эту проблему.

WTF, хотя.

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