2016-08-03 5 views
0

После некоторого поиска в Google я обнаружил, что возиться со стартовым экраном Xcode по умолчанию - это не самый правильный способ заставить экран заставки запускать некоторое время и другие вещи, поэтому я добавляю новый контроллер представления (пользовательский класс с именем всплеск) к моей раскадровке, а затем через 2 секунды он будет показывать мой главный UINavigationController и это не работает, просто замерзает на заставкеПользовательский экран заставки для приложения iOS

Вот мой код:

import UIKit 

class splash: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     NSThread.sleepForTimeInterval(2.0) 
     let vc = storyboard?.instantiateViewControllerWithIdentifier("mainmenu") as! UINavigationController 
     self.presentViewController(vc, animated: true, completion: nil) 
    } 
} 
+1

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

+0

ну, это требование клиента мой друг –

+0

Я полностью согласен с u, но в то же время экран заставки по умолчанию не полезен вообще, он появляется менее чем за секунду! –

ответ

0

Что вы пытаетесь сделать - это уродливый взлом. Не.

Вы должны создать свой пользовательский Splash View Controller с макетом, который имитирует образ заставки закладок по умолчанию, выполнять пользовательские анимации, если таковые имеются, а затем нажать/представить следующий контроллер представления (в основном потоке) или все, что вы хотите сделать в соответствии с вашими приложений.

0

я должен решить с помощью выполнения селектор

class splash: UIViewController { 

override func viewDidLoad() { 
    super . viewDidLoad() 

    performSelector(#selector(splash.showmainmenu), withObject: nil, afterDelay: 2) 
} 

func showmainmenu(){ 

    performSegueWithIdentifier("mainmenu", sender: self) 

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