68320


Swiftの以下のようなコードで、異なるStoryboard間の画面遷移を実装できました。

[code]

        let storyboard: UIStoryboard = UIStoryboard(name: "TestViewController", bundle: nil)
        let next: UIViewController = storyboard.instantiateInitialViewController()!
        self.present(next, animated: true, completion: nil)
    
[/code]

しかし、このコードだと、下側からニョキっと画面が覆いかぶさるだけで、画面を下方向にスワイプさせると画面が前のページに戻ってしまいます。  
新しいStoryboard側だけを表示して、画面を前ページに戻れないようにするにはどうしたら良いですか？


CC BY-SA 4.0
2020-07-05T23:08:36.590
68319
2020-07-05T23:33:13.553
36446
question
swift
Swiftで異なるStoryboard間の画面遷移について


その挙動は現在のiOSのデフォルトで、異なるStoryboard間であろうと、同一Storyboard内であろうと発生するものです。

遷移先のView ControllerのAttribute
inspectorを開いて、「Presentation」の設定を確認して下さい。おそらく「Automatic」(もしかしたら、「Page
Sheet」)になっているのだと思われます。それを「Full Screen」に変更してみて下さい。

Storyboard上での設定が分かりにくい場合には、コードで変更することもできます。

[code]

            let storyboard: UIStoryboard = UIStoryboard(name: "TestViewController", bundle: nil)
            let next: UIViewController = storyboard.instantiateInitialViewController()!
            next.modalPresentationStyle = .fullScreen //<-
            self.present(next, animated: true, completion: nil)
    
[/code]


CC BY-SA 4.0
2020-07-05T23:33:13.553
68320
2020-07-05T23:33:13.553
13972
68319
answer