2016-01-30 2 views
1

Я хочу контролировать, какие сцены видны от А до Я, если это возможно.Swift ios7 раскадровка - сам запуск главной сцены

Я новичок в iOS, но решил пойти с использованием раскадровки, потому что, похоже, направление движется.

С моей точки зрения, я собираюсь рассмотреть его как инструмент для проектирования нескольких сцен в одном месте, но я хочу контролировать переход в своем собственном коде. (Я переношу с другого языка и инструмента, который уже управляет и отслеживает сам логический поток)

Это приводит меня к моему вопросу - я бы предпочел загрузить/выбрать свою первую/основную сцену самостоятельно при запуске и сам запустить ее , Как мне лучше всего это сделать?

ответ

2

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

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

Identifier

Вы можете установить идентификатор для просмотра контроллера, как выше в раскадровке.

+0

В настоящее время у меня есть две сцены в Main.storyboard - каждый со своим собственным контроллером представления «ViewControllerMainList» и «ViewControllerMainGrid» - место в бите в файле «ViewControllermain.swift – Tom

+1

Что вы хотите сделать? –

+0

Я пытаюсь идти по маршруту ak2g - я не могу заставить его работать в currenlty, но, предположив, что это будет в какой-то момент - это решение подойдет мне отлично – Tom

5

Если вы хотите, чтобы любой контроллер представления, чтобы показать в первом, то просто щелкните контроллер представления в storyboardand нажмите является начальным контроллером представления

Из Кодекса (в AppDelegate)

Swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 

    var storyboard = UIStoryboard(name: "Main", bundle: nil) 

    var initialViewController = storyboard.instantiateViewControllerWithIdentifier("LoginSignupVC") as! UIViewController 

    self.window?.rootViewController = initialViewController 
    self.window?.makeKeyAndVisible() 

    return true 
} 

цель C

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

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>]; 

self.window.rootViewController = viewController; 
[self.window makeKeyAndVisible]; 

return YES; 
} 
+1

Это выглядит многообещающе. Благодаря! – Tom

+0

Когда я пытаюсь создать экземплярViewControllerWithIdenifier, код/​​приложение просто выходит с помощью «SIGABRT». Моя раскадровка называется «Главная, раскадровка», поэтому я вставлял ее как строку раскадровки. (Проверка во время отладки/шага кажется, что это было успешно достигнуто.) Класс контроллера представления, который я хочу создать, называется «ViewControllerMainList» (который помещается в файл «ViewControllermain.swift», который также содержит класс «ViewControllerMainGrid») – Tom