Первое приложение для iPhone Multiview - Руководство - PullRequest
1 голос
/ 03 марта 2011

Я хочу создать приложение с несколькими окнами с 5-6 различными экранами и источником данных для хранения пользовательской информации. Я никогда не создавал мультивьювное приложение раньше, и у меня есть хорошая идея о том, как начать, но я хотел бы услышать некоторые рекомендации по «структурированию» вашего приложения для правильной поддержки этого.

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

Я просто хочу убедиться, что начинаю с правой ноги. Должен ли я хранить все свои функции в одном файле класса .m / .h? Какой самый лучший / эффективный способ использовать разные экраны?

Спасибо, и я обязательно постараюсь помочь другим, как только получу гораздо лучшее представление о Objective-C и Xcode.

Ответы [ 3 ]

1 голос
/ 03 марта 2011

Если вы новичок в iPhone / iPad, я настоятельно рекомендую вам ознакомиться с лекциями CS193P * ​​1002 *, они также доступны на itunes.Они дают хорошее представление о программировании iPhone и о том, как это делается в Objective-C / Cocoa Touch.Это заставит любого начать в правильном направлении.

Что касается вашего конкретного вопроса.Просто начните кодировать.Через 6 месяцев вы поймете, что все, что вы написали, - это cr * p, и его нужно все равно переписать, но сделать это - единственный способ понять, что вы написали, это cr * p, так что ...

Некоторыепредложения, характерные для мульти-просматриваемых приложений (которые есть почти в каждом приложении), и я уверен, что кто-то еще может расширить это ...

  1. Научитесь (насколько это возможно) кодировать взаимодействия между различнымиview и viewcontrollers (против использования построителя интерфейса).Например, приложение twitter вообще не использует Interface Builder.
  2. Если вы используете IB, не выкидывайте все в один .xib.Узнайте, как разбить их.Это должен быть один .xib на viewcontroller.Я никогда не использую IB UITabBarController или IB UINavigationController, они инициализируются и используются только в коде.
  3. Абсолютно изучают MVC (контроллер представления модели).
0 голосов
/ 03 марта 2011

Я использовал UINavigationController. Я создал его как синглтон и получал статический доступ к нему, чтобы можно было легко нажимать и извлекать контроллеры (вот довольно хороший учебник здесь ). Это довольно легкий и достаточно документации, чтобы быстро приступить к работе.

Однако лучший подход, который я использовал, это TTNavigator фреймворка Three20 . В двух словах, это улучшенный UINavigator, который позволяет вам выдвинуть новое представление на экран, вызвав внутренний URL:

//(In your app delegate)
//Start up the navigator
TTNavigator* navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeTop;

//Map url's to controllers
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"ac://search" toViewController:[SearchViewController class]];
[map from:@"ac://results/(initToView:)" toViewController:[ResultsViewController class]];

Затем перейти к контроллеру:

[[TTNavigator navigator] openURLAction:[[TTURLAction actionWithURLPath:@"ac://results/searchResults/"] applyAnimated:YES]];

Круто также то, что вызов этого @ "ac: // results /", как мы описали выше, передается в параметре @ "searchResults" методу init в ResultsViewController ("initToView:"), как мы определили в картограф

Всего наилучшего!

0 голосов
/ 03 марта 2011

Документация Apple часто является хорошим началом для большинства вещей.Попробуйте здесь в первую очередь.Надеюсь, это поможет и удачи!

...