2015-10-17 4 views
0

Я пытаюсь настроить экран запуска и первоначальный вид моего приложения. Однако я не могу ни проявить себя.Xcode: LaunchScreen.storyboard не отображается

Я это установить:

enter image description here

enter image description here

Я пропускаю шаг? Разве я не должен видеть страницу с «бла» на ней в качестве экрана запуска? Вместо этого, когда я запускаю симулятор, он просто черный.

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

В моем файле AppDelegate.swift:

import UIKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    func application(application: UIApplication, 
     didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     self.window?.rootViewController = self.rootViewController() 
    return true 
    } 

    private func rootViewController() -> UIViewController { 
    return MapViewController.init() 
    } 

} 

И мой MapViewController.swift:

import UIKit 

class MapViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     var label = UILabel(frame: CGRectMake(0, 0, 200, 21)) 
     label.center = CGPointMake(160, 284) 
     label.textAlignment = NSTextAlignment.Center 
     label.text = "I am a test label" 
     self.view.addSubview(label) 
     NSLog("heyyyy!!") // <----------------- doesn't get printed either, so I think I'm missing something again... 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    /* 
    // MARK: - Navigation 

    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     // Get the new view controller using segue.destinationViewController. 
     // Pass the selected object to the new view controller. 
    } 
    */ 

} 

Извините за нуб вопросы.

== UPDATE ==

Я получаю эти 2 предупреждения, когда я строю его:

файл: ///Users/emai/Documents/ios/Sherpa/SherpaNewYork/LaunchScreen.storyboard : предупреждение: неподдерживаемая конфигурация: сцена недоступна из-за отсутствия точек входа и не имеет идентификатора для доступа во время выполнения через -instantiateViewControllerWithIdentifier :.

/Users/emai/Documents/ios/Sherpa/SherpaNewYork/LaunchScreen.storyboard:9: Сцена недостижима из-за отсутствие точек входа и не имеет идентификатора для доступа во время выполнения с помощью -instantiateViewControllerWithIdentifier :.

+0

Когда вы строите, есть ли предупреждения о вашем экране запуска? – rmaddy

+0

yeh Позвольте мне вставить его для вас – Edmund

+2

Не игнорируйте предупреждения. Исправьте все предупреждения. Приложение действительно должно (должно) компилировать предупреждение бесплатно. – rmaddy

ответ

0

Что вам не хватает в том, что экран запуска статичен! Ему не нужен контроллер или что-то еще. Контроллер ничего не сделает. Для экрана запуска вы можете проектировать пользовательский интерфейс только с помощью конструктора интерфейса, а не через код.

Xcode обычно должен сказать вам, что если вы попытаетесь установить пользовательский контроллер на экране запуска, это приведет к ошибке.

+0

Так я должен удалить контроллер вида из этой раскадровки и просто иметь отдельную раскадровку? Xcode справится с этим? – Edmund

+0

@Edmund Вам нужна одна раскадровка для экрана запуска, которая является статичной и одной раскадровки для вашего приложения, где вы соединяете представления с контроллерами и выходами и все эти сумасшедшие вещи. – luk2302

0

Похоже, что вы не настроили свои раскадровки с точкой входа. Установите первую сцену, которую вы хотите, чтобы показать, как Initial View Controller

enter image description here

+0

Удивительно, что это разрешает проблему с первым сценарием? Если я не использую раскадровки для сцен, как бы я мог установить это свойство программно? – Edmund

+0

Если вы не используете раскадровки, тогда вам нечего настраивать, когда вы загружаете свои контроллеры представлений вручную. – Abizern

+0

Тогда почему это просто черный экран? Потому что я испортил часть экрана запуска? – Edmund

0

Так удаление файлов LaunchScreen.storyboard + LaunchScreenViewController.swift и добавление файла Запуск Screen.xib работал в фиксации экрана запуска. Это имеет смысл для меня, поскольку экран запуска должен быть статическим, а не использовать код.

Однако вид экрана по-прежнему остается черным после запуска экрана. Я сделаю для этого еще один вопрос.

+1

Нет необходимости в LaunchScreenViewController. Он не используется. Раскадровка для экрана запуска может содержать только объекты и ограничения компоновки, которые вы накладываете на нее. Код не выполняется. Простой раскадровки Launch - это все, что вам нужно. Я подозреваю, что ваша проблема в другом месте, и вы просто работаете вокруг, переходя от раскадровки к xib. – Abizern

2

уверен, этот ответ немного поздний. ;-) Если бы какая-то проблема, но я случайно нашел тихое простое решение, используя Launch Screen.storyboard, созданную с помощью приложения автоматически.

Откройте App-Настройка и там App иконки и запуск Изображение

enter image description here

Выберите Запуск Screen.storyboard в DropDown-List, даже если и думает, это уже выбрано. После выбора экрана экран не изменится. Но при перезапуске проекта был показан экран запуска!

BTW, чтобы проверить это аккуратный, и можно установить breakpont в последней строке Func приложения (приложения: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)

1

Я также боролся с launchscreen раскадровка не появляется. Я попробовал все исправить, я мог найти безрезультатно. Затем я очистил кеш на моем симуляторе, и это сработало! Оказалось, это была проблема симулятора. Я очистил кеш с помощью этой команды в терминале: xcrun simctl erase all

+0

ЭТО ответ. СПАСИБО. Это такая глупая ошибка и так утомительна. Это единственное, что окончательно исправило мою проблему раскадровки экрана запуска, которая не появилась. –

+0

Просто FYI, не используйте эту команду терминала, если вы используете более одной версии Xcode на вашем компьютере. Вы потеряете соединение с вашим симулятором и вызовете больше головных болей. – itsmcgh

0

Я знаю, что очень поздно, но я хочу поделиться, как я ее исправил, если вы проверяете реальное устройство, попробуйте сначала удалить приложение, перезапустите телефона, а затем переустановите приложение. он будет исправлен, если вы выполнили все шаги, такие как очистка кеша и настроек в закладке «Цель» и т. д.

Смежные вопросы