Чего мне не хватает при создании приложений из шаблона только для окон? - PullRequest
1 голос
/ 23 декабря 2010

Я довольно новичок в разработке для iOS, но довольно быстро освоился.

Я пытаюсь понять, как создавать универсальные приложения из шаблона «только для окон» в xcode.Я THOUGHT чтобы я мог добавить основной вид в main_window.xib, выполнив следующие действия:

  • Создайте новый шаблон приложения на основе окна.
  • Перейтив файл> новый файл> подкласс uiviewcontroller с файлом XIB.
  • Откройте файл main_window.xib и добавьте новый контроллер представления с моим новым подклассом uiviewcontroller в качестве выбранного имени NIB в инспекторе.
  • Control-Drag из объекта окна в новый контроллер представления, и добавьте его как rootViewController.

Я думал, что отсюда у меня было что-то, что было практически таким же, как шаблон на основе представления, ноКогда я добавляю контроллер сегментированного представления, добавляю IBOutlet / IBAction в коде, а затем подключаю розетки и полученные действия в Интерфейсном Разработчике, приложение вылетает при запуске каждый раз.

Я уверен, что я пропускаю важный шаг в подключении этого процесса и был бы рад, если бы кто-то мог предложить решение, а также некоторые общие советы, когданастраивать такие вещи?

Спасибо.

РЕДАКТИРОВАТЬ: Решить это, выполнив следующие действия:

  • Создать новый шаблон на основе окна.
  • Создайте подкласс UIViewController, назовите его как хотите.
  • В AppDelegate.h добавьте @class YourViewControllerName перед @interface
  • Внутри @ interface для appDelegate, добавьте YourViewControllerName *mainViewController;
  • Затем за пределами @ interface добавьте @property (nonatomic, retain) IBOutlet YourViewControllerName *mainViewController;
  • В AppDelegate.m добавьте #import YourViewControllerName.h вверху.
  • Добавить @synthesize YourViewControllerName.
  • В ApplicationDidFinishLaunching добавить: [self.window addSubView:mainViewController.view]
  • Открыть MainWindow.xib в конструкторе интерфейса, перетащить в новый видконтроллер из библиотеки и используйте инспектор свойств, чтобы изменить его класс на YourViewControllerName , и выберите соответствующий файл NIB из раскрывающегося меню.
  • Управление перетаскиванием из делегата приложения,это поле yellow в IB, к вашему новому созданному контроллеру представления, и подключите mainViewController outпусть вы создали.

VOILA! готово.Решил все мои проблемы.

Большое спасибо за помощь, ребята.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2010

это моя документация, это может вам помочь .....

  1. создать приложение на основе окон (имя вам подходит)

2.создать класс UIviewcontroller(.h & .m) с nib-файлом

3.open appdelegate.h и импортируйте «view controller .h» (созданный в шаге 2)

  1. ADD @class [viewимя класса контроллера] before (@interface appDelegate)
  2. ДОБАВИТЬ в @interface appDelegate посмотреть имя класса контроллера * псевдоним Name;@property (нетоксичный, сохраняемый) Имя класса контроллера представления IBOutlet * Имя псевдонима;

4.open appdelegate.m 1. @ синтезировать псевдоним;2. -(void)applicationDidfinishLaunching:(UIApplication *)application {</p> <pre><code> [window addsubView: aliasname.view]; [window makekeyAndVisible]; }

5.open mainwindow.xib

1.add UIviewcontroller из библиотеки

2.открытое свойство для UIviewcontroller, добавьте имя файла nib и имя класса

3.связать объект окна с Uiviewcontroller, используя свойство

0 голосов
/ 23 декабря 2010

Создайте IBOutlet для своего пользовательского контроллера представления, называемого viewController типа MyViewController (или как вы хотите, чтобы ваш класс назывался) в вашем делегате приложения, и сделайте MyViewController подклассом UIViewController.Затем, в файле MainWindow.xib, добавьте новый контроллер представления из библиотеки, убедившись, что для класса этого контроллера представления установлено значение MyViewController (или любое другое имя вашего класса).Затем подключите выход viewContoller к контроллеру представления в файле MainWindow.xib, и в вашем методе applicationDidFinishLaunching добавьте:

[window addSubview:viewContoller.view];

Это должно сделать это!

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