Как запустить приложение для iphone, чтобы оно не использовало файлы nib? - PullRequest
0 голосов
/ 31 августа 2011

Я читал о плюсах / минусах программирования с / без конструктора интерфейса, и я хочу попробовать написать приложение с нуля. Тем не менее, даже с оконным приложением он создает XIB-файл, и я хотел бы удалить это, но не уверен, что делать после. просто очень нужен этот старт. Спасибо!

Ответы [ 5 ]

2 голосов
/ 31 августа 2011

По сути, вы должны указать appDelegate в UIApplicationMain () (в main.m), то есть ... from:

int retVal = UIApplicationMain(argc, argv, nil, nil);

до:

int retVal = UIApplicationMain(argc, argv, nil, @"MyAppDelegate");

затем в методе MyAppDelegate application: didFinishLaunchingWithOptions: вы должны вручную создать свой пользовательский интерфейс:

// initialize application's window
_window = [[UIWindow alloc] initWithFrame:MAIN_FRAME];

// activate and display application's window
[_window makeKeyAndVisible];

... и т. Д.

0 голосов
/ 31 августа 2011

Я создал несколько шаблонов проектов без перьев для Xcode 4: MinimalisticXcodeTemplates (GitHub) .

0 голосов
/ 31 августа 2011

Надеемся, что следующий шаг будет полезен.

  1. Откройте файл ProjectNameInfo.plist, а затем удалите свойство, называемое основным именем файла пера (в нижней части списка свойств информации).Вы можете удалить свойство, щелкнув, чтобы выбрать его, а затем нажав клавишу Delete.

  2. В разделе «Другие источники» откройте main.m и измените последний аргумент вызова на UIApplicationMain с nilк имени вашего класса делегата приложения (например, @ "ProjectNameAppDelegate").

  3. Выполните следующие изменения в классе AppDelegate didFinishLaunchingWithOptions: метод

// Получение объектов экрана

CGRect screenBounds = [[UIScreen mainScreen] bounds];

// Распределить окно

m_window = [[UIWindow alloc] initWithFrame: screenBounds];

// Распределить пользовательские представления

m_view = [[MyView alloc] initWithFrame: screenBounds];

// Добавить вид и сделать окно видимым

[m_window addSubview: m_view];

[m_window makeKeyAndVisible];

return YES;

-> Я узнал об этом из книги iPhone 3D-программирование: Philip Rideout: публикация O'Reilly.

Вы должны найти выше в книгах по гулу и прочитать некоторыестраниц для дальнейшего понимания, потому что только приведенного выше объяснения может быть недостаточно.

Более того, выполнив описанные выше шаги, вы можете создать любое количество контроллеров представления и представлений без использования xib ... так что обратитесь к различным документам руководства по программированию, предоставленнымяблоко.

Удачи

0 голосов
/ 31 августа 2011

Есть несколько способов, один из простых: Зайдите в навигатор файлов проекта, поищите

"Supporting Files -> XXX-info.plist", 

тогда поищите это:

Main nib file base name: 

Удалите это.

Надеюсь, эта помощь

0 голосов
/ 31 августа 2011

Вы можете создать любой проект, и пока вы добавляете новый viewController, просто снимите флажок «С XIB для UserInterface» (показан ниже красной стрелкой).

Это позволит вам создавать viewController безXIB.

Но тогда вам придется программно поместить все элементы управления для viewController

enter image description here

Не используйте viewController, который входит по умолчанию, и добавьте newViewController с помощьюметод, упомянутый выше.

Затем начните создавать нужные элементы управления, такие как UIButton, UILabel и т. д., используя его методы alloc (alloc) и initialization (init), и установите его фреймы.установите любые атрибуты согласно вашему требованию, а затем просто добавьте его в качестве подпредставления к основному представлению viewwController.Так что было бы что-то вроде динамического добавления textField:

UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(150,30,40,24)];
txtField.textColor = [UIColor blueColor];
[self.view addSubview:txtField];

Надеюсь, это поможет вам.

...