Хорошо, я знаю, что это расплывчатый концептуальный вопрос, но мне действительно нужна помощь. Заранее спасибо, если вы решите потратить время на прочтение этого. Я бы никогда даже не подумал о том, чтобы написать так много, но это такой замечательный форум с таким количеством полезных людей, что я подумал, что это будет лучшее место, где можно спросить.
Все это связано с вопросом здесь (вам не нужно смотреть на него - я объясню все ниже): Передать параметр при инициализации таблицы
Я несколько дней работал над одной и той же проблемой, но я понимаю, что должно быть что-то большое, что мне не хватает. Я гуглил и гуглил, и я даже купил (и около 50% прочитали) две книги Obj-C несколько дней назад, но я все еще цепляюсь за то, что кажется невероятно простым. Очевидно, я новичок в ООП, но у меня посредственные навыки в HTML, Perl, SQL, Python, а также в некоторых древних вещах, таких как Pascal и Basic. Я n00b, но не придурок (ну вообще-то этот опыт немного меняет мое мнение).
В любом случае, моя конечная цель здесь — просто создать приложение с 8 «обычными» кнопками в первом представлении (уровень 1), каждая из которых в основном делает одно и то же — показывать простое табличное представление (уровень 2) с данными в ячейки, которые можно щелкнуть, чтобы продолжить детализацию (уровень 3). Очень простая и простая концепция. Единственная разница между 8 возможными уровнями 2 заключается в отображаемых данных. Я уже создал SQL-запросы, которые работают так, как я хочу для каждой кнопки.
Итак, вот моя точка зрения: у меня есть прекрасно работающее приложение, которое делает все, начиная с уровня 2, точно так, как я ожидаю — запросы работают, таблицы прекрасны — так что это здорово.
Кроме того, у меня есть еще одно навигационное приложение, которое запускается на «уровне 1» и показывает мне 8 кнопок (я скрываю панель навигации на уровне 1). Если я нажму любую из кнопок на уровне 1, вид уровня 2 (который представляет собой панель навигации + таблица) появится в представлении точно так, как я хочу. Проблема в том, что таблица пуста. Что бы я ни делал, я не могу получить уровень 2 во втором приложении, чтобы показать мне данные, хотя я могу отлично показать все эти данные в первом приложении. На всю жизнь я не могу понять, как «связать» уровень 1 с уровнем 2.
Надеюсь, вы понимаете этот пробел, который я пытаюсь преодолеть. Поскольку существует 8 возможностей для уровня 2 (с очень небольшими различиями в запросах sql для одной и той же таблицы sql), я сначала попытался придумать способ «передачи» целого числа в представление уровня 2 (в первом приложении) и затем выбор SQL-запроса на основе того, что было передано (см. ссылку выше для этого фиаско). Как только у меня это заработало, я планировал позже выяснить, как заставить кнопки выполнять «прохождение». Однако после примерно 16 часов возни с этим я просто сдался и решил сделать 8 разных контроллеров табличного представления, все с почти идентичным кодом, кроме запроса. Таким образом, если бы я мог просто получить ОДНУ кнопку на уровне 1, чтобы просто нажать только на ОДНУ кнопку уровня 2 без параметров, я был бы ужасным, но успешным программистом.
К сожалению, даже это не сработало для меня. Я перепробовал все возможные комбинации управления-перетаскивания и окна/представления/таблицы, какие только мог придумать в Interface Builder, но что бы я ни пытался, данные никогда не загружались в табличное представление, хотя в моем первом приложении это прекрасно работает. Я просмотрел каждую строку кода - они одинаковы, за исключением того, что что-то должно «вызвать» или «запустить» часть уровня 2, и я просто не понимаю.
Итак, я собираюсь порвать с соглашением/ожиданиями и не публиковать код в своем вопросе. Я просто хочу знать - как это может быть так сложно?? У меня очень аналитический склад ума, и я быстро схватываю, но я должен сказать, что никогда в жизни не был так смирен техническими проблемами.
Может ли кто-нибудь объяснить мне на концептуальном уровне, что мне нужно здесь делать или что мне не хватает? Даже если вы дадите мне ссылку на что-нибудь почитать, я был бы очень признателен. Я просмотрел десятки часов уроков на YouTube, но я всегда готов к большему.
Конечно, я готов поделиться своим кодом, но его так много, и я настолько новичок в этом, что действительно не знаю, где находятся соответствующие части. Кроме того, я действительно хочу узнать, как все это работает, чтобы я мог помочь другим. Если здесь есть такая вещь, как PM, я отправлю ее вам по электронной почте, если вы готовы взглянуть. Как только я заработаю, я опубликую код здесь. Я должен верить, что есть другие люди, которые ищут то же самое, что и я. Однако, что более важно, я просто хочу знать на высоком уровне, как правильно подойти к моей проблеме? Если вы посмотрите на мою ссылку, вы увидите, что я пытался (то есть передать целое число методу, заполняющему таблицу), но, как я уже сказал, я в основном отказался от этого, потому что я ничего не добился. Люди пытаются мне помочь, но я идиот.
Спасибо, что выдержали мое мучительно длинное сообщение. Если вы зашли так далеко и у вас есть какие-то предложения для меня, я весь слушаю. Но я буду честен - если вы скажете мне, что я должен просто отказаться от всего этого и использовать основные данные, я заплачу. Я действительно не думаю, что у меня есть время, чтобы придумать совершенно другой способ управления данными. Как я уже сказал, я очень доволен базой данных и частями запросов моего приложения - меня убивает только управление чертовыми представлениями и передача данных между ними!
Любая помощь приветствуется - всем большое спасибо.