Как создать проект 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;
}
Вот и все.