Как создать проект iOS с XIB в Xcode 6?

Я пытаюсь создать проект на Objective-C языке без раскадровки с помощью Xcode 6 Beta 5. Я попытался создать пустой проект, но он не работал как Xcode 5.

Я прочитал эту тему Как создать проект без доски объявлений в Xcode 6 - Swift, но это мне не помогло.

Ответ 1

Что значит, что он не работает как Xcode 5? Вы можете создать пустой проект без раскадровки, а затем добавить свой собственный класс с XIB, как в Xcode 5: Файл → Новый → Файл → Cocoa Touch Class → Установите "Подкласс из:" как (например) UIViewController и установите флажок "Также создайте файл XIB".

Ответ 2

Сначала вы создаете новый проект "Single View". Это начинается с раскадровки, но поскольку Xcode 6 удалил параметр для создания пустого проекта, мы просто будем работать с ним отсюда.

Затем вы создаете новый файл для этого проекта, переходите в категорию "Пользовательский интерфейс" и выбираете "Вид". Я бы назвал его тем же именем, что и ваш оригинальный ViewController, поскольку он заменит раскадровку, которую мы собираемся удалить из проекта.

После создания XIB вам нужно будет выбрать его и установить "Владелец файла", чтобы указать на класс "ViewController", с которым вы хотите связать этот XIB. Это делается путем входа в инспектор удостоверений владельца файла Xib и изменения значения NSObject по умолчанию для имени класса вашего контроллера представления.

После этого вы хотите перейти к инспектору соединений, чтобы связать представление владельца файла с представлением XIB. Просто нажмите маленький круг напротив "вид" и перетащите его на свой вид, чтобы подключить его. Затем вы должны иметь соединение между представлением и представлением.

Теперь важные части. Перейдите в свой целевой проект на вкладке "Общие". Существует подразделение под названием "Информация о развертывании". В этом подразделе есть поле "Основной интерфейс". В этом поле должно быть указано имя раскадровки. Вам нужно удалить значение, указанное в этом поле, чтобы основной интерфейс оставался пустым.

Затем перейдите в App Delegate и установите контроллер корневого представления вашего окна, как и для предыдущих версий Xcode. Как только это будет сделано, у вас должно быть запущенное приложение, использующее ваш XIB, и вы можете удалить свою раскадровку из проекта без каких-либо негативных последствий.

Ответ 3

Я не знаю, почему люди голосуют за это, поскольку это законный вопрос, поэтому вот что вам нужно сделать:

Создайте пустой проект, создайте новый контроллер представления (File/New/File) - с XIB файлом, если он вам нужен, импортируйте новый контроллер представления в свой AppDelegate и установите этот контроллер представления в качестве контроллера корневого представления.

AppDelegate.m:

#import "AppDelegate.h"

// import the view controller you want to be displayed first
#import "FirstViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // create an instance of the view controller you want to be displayed first
    FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    // set it as the root view controller of the application window
    [self.window setRootViewController:firstViewController];

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

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

Ответ 4

AppDelegate.h

UINavigationController *nav;

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    ViewController *ll=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
    nav=[[UINavigationController alloc]initWithRootViewController:ll];
    [self.window setRootViewController:nav];
    [nav setNavigationBarHidden:YES];
    return YES;
}

Ответ 5

Это очень просто:

  • создать пустой проект приложения
  • добавить в этот проект новый файл → Objective-C класс (с .xib файлом). Мой класс называется "ViewController":) Теперь вы должны создать UINavigationController в AppDelegate.h, например:

    @property (сильный, неатомный) UINavigationController * navController;

чем вы должны установить свой навигатор в

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    [self.window makeKeyAndVisible];

    ViewController* homeViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    _navController = [[UINavigationController alloc] initWithRootViewController:homeViewController];

    self.navController.navigationBarHidden = YES;
    self.window.rootViewController = self.navController;

    return YES;
}

Вот и все.