Прежде всего, да, вы все еще можете использовать IB для этого даже в последней версии XCode, поэтому я не уверен, откуда вы это взяли.
Если вы хотите знать, как указать делегата приложения без IB, это довольно просто:
В вашем методе main
просто используйте имя класса делегата приложения в качестве 4-го параметра для UIApplicationMain
:
int main(int argc, char *argv[])
{
@autoreleasepool
{
int retVal = UIApplicationMain(argc, argv, nil, @"APPLICATION_DELEGATE_CLASS_NAME");
return retVal;
}
}
Фактически, Xcode 4.2 делает это за вас по умолчанию, когда вы создаете приложение на основе представления из шаблона (хотя оно не использует статическую строку ... что, вероятно,если честно, лучше, чем мое предложение, потому что оно будет подвергнуто рефакторингу, если вы используете встроенный рефакторинг и т. д.):
NSStringFromClass([AppDelegate class])
Чтобы ответить на ваш дополнительный вопрос: ok , then what should I do ? to connect the UINC outlet in interface ?
Не беспокойся.
Все еще не веришь мне?Хорошо ... вот учебник ... это пятнадцать шагов!... и абсолютно бессмысленно.
Сначала создайте приложение:
Откройте main.m
и замените четвертый параметр на nil
:
Создайте новый xib или взломайте существующий (который я собираюсь здесь сделать) и сделайте класс владельца файла UIApplication
.
Затем добавьте Object
из панели инструментов и измените класс на ваш UIApplicationDelegate
подкласс:
Теперь переключитесь обратнок владельцу файла и подключите выход delegate
к добавленному UIApplicationDelegate
.Удалите ссылку view
, если вы делаете то, что я сделал, и похитили существующий xib.
Теперь добавьте UIWindow
из набора инструментов.
Теперь добавьте 'UIViewController from the toolbox. This is your custom
UIViewController . If you want a
UINavigationController or
UITableViewController`, просто добавьте это вместо этого.
При использованиипользовательский класс UIViewController
, укажите класс здесь:
Подключите UIWindow
rootViewController
розетку к UIViewController
:
Взломайте ваш интерфейс UIApplicationDelegate
и создайте или измените свойство window
, чтобы сделать его IBOutlet
.
Переключиться вреализация и удалить любой «бесполезный» код, который настраивает ваш контроллер окна и корневого представления.(Я саркастичен здесь ... этот сжатый код делает все, что мы делаем здесь ... просто программно, а не через IB.)
Переключитесь обратно на свою xibи подключите вашу UIApplicationDelegate
window
розетку.
Теперь, в информации о развертывании вашей цели, установите xib как "Основной интерфейс":
Готово .... фу!