例えば、以下のような簡単なViewController.swiftを作ります。
Swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var myLabel: UILabel! 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 myLabel.text = "sleep..." 10 sleep(10) 11 myLabel.text = "done" 12 } 13 14 override func didReceiveMemoryWarning() { 15 super.didReceiveMemoryWarning() 16 } 17}
起動時にlabelを「sleep...」とし10秒後に「done」に変える、というだけのものです。このアプリでLaunchScreen.storyboardを使ってスプラッシュ画面を表示した場合、希望の動作としては、
スプラッシュ画面表示→「sleep...」表示→10秒そのまま→「done」に表示変更
となって欲しいのですが、何故か、
スプラッシュ画面表示→10秒そのまま→「done」が表示
と「sleep...」が表示されません。ネットで調べると、特別なことをしなければスプラッシュ画面が表示されている間にバックグラウンドで何か処理することはないという記述が見られるので、なぜ下側のような挙動になるのかがわかりません。上側のようなスプラッシュ画面が終わってからViewControllerの処理に入るようにするには、どうしたらいいのでしょうか?
xcodeはVersion 9.2 (9C40b)です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/01 11:42
2018/03/01 12:34
2018/03/01 15:31
2018/03/01 21:45
2018/03/02 00:03
2018/03/02 00:34
2018/03/02 01:52