StoryBoardSegue

         SampleStoryBoardSegue

リンク先のサンプルを作成しました。

画面遷移メソッド

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

などで、

データを渡すプログラムはありますが、文字を渡す事が出来れば、遷移先で対応できるので、作成しました。

Storyboard経由で、遷移先に文字データを渡すプログラムです。

呼び先

UIViewController
uIStoryboard(name: "NextController", vc: self,title: "test")

UINavigationViewController
uINavigationStoryboard(name: "NextController", vc: self, title: "test")

push遷移
pushUIStoryboard(name: "NextController", vc: self,title: "test")

遷移先

 // navigationControllerの場合
 // segueName = navigationController?.title
 segueName = title
 print(segueName ?? "", "segueName")

結果
test segueName

実施していること UIResponderの拡張クラスを作成しています。

https://developer.apple.com/documentation/uikit/uiresponder

UIResponderとは

レスポンダーオブジェクト(つまり、UIResponderのインスタンス)は、UIKitアプリのイベント処理バックボーンを構成します。 UIApplicationオブジェクト、UIViewControllerオブジェクト、およびすべてのUIViewオブジェクト(UIWindowを含む)など、多くのキーオブジェクトもレスポンダーです。イベントが発生すると、UIKitはそれらをアプリのレスポンダーオブジェクトにディスパッチして処理します。 タッチイベント、モーションイベント、リモートコントロールイベント、プレスイベントなど、いくつかの種類のイベントがあります。特定のタイプのイベントを処理するには、レスポンダーが対応するメソッドをオーバーライドする必要があります。たとえば、タッチイベントを処理するために、レスポンダーはtouchesBegan(_:with :)、touchesMoved(_:with :)、touchesEnded(_:with :)、およびtouchesCancelled(_:with :)メソッドを実装します。タッチの場合、レスポンダーはUIKitによって提供されるイベント情報を使用して、それらのタッチへの変更を追跡し、アプリのインターフェースを適切に更新します。 UIKitレスポンダーは、イベントの処理に加えて、未処理のイベントのアプリの他の部分への転送も管理します。特定のレスポンダがイベントを処理しない場合、レスポンダチェーン内の次のイベントにそのイベントを転送します。 UIKitは、事前に定義されたルールを使用してレスポンダーチェーンを動的に管理し、イベントを受信する次のオブジェクトを決定します。たとえば、ビューはイベントをスーパービューに転送し、階層のルートビューはイベントをビューコントローラーに転送します。 レスポンダーはUIEventオブジェクトを処理しますが、入力ビューを介してカスタム入力を受け入れることもできます。システムのキーボードは、入力ビューの最も明らかな例です。ユーザーが画面上のUITextFieldおよびUITextViewオブジェクトをタップすると、ビューが最初のレスポンダーになり、入力ビュー(システムキーボード)が表示されます。同様に、カスタム入力ビューを作成し、他のレスポンダーがアクティブになったときに表示することができます。カスタム入力ビューをレスポンダーに関連付けるには、そのビューをレスポンダーのinputViewプロパティに割り当てます。 レスポンダーとレスポンダーチェーンの詳細については、UIKitアプリのイベント処理ガイドを参照してください。

Storyboardを経由して、遷移先に文字を渡すプログラム

extension UIResponder {
ViewControllerの遷移
func uIStoryboard(name: String, vc: UIViewController, title: String? = nil) {
        let storyboard: UIStoryboard = UIStoryboard(name: name, bundle: nil)
        let next = storyboard.instantiateInitialViewController() ?? UIViewController()
        next.title = title
        vc.present(next, animated: true, completion: nil)
    }
    
Navigationの遷移  
func uNavigationStoryboard(name: String, vc: UIViewController, title: String? = nil) {
        let storyboard: UIStoryboard = UIStoryboard(name: name, bundle: nil)
        let vcs = storyboard.instantiateInitialViewController() ?? UIViewController()
        let navi = UINavigationController(rootViewController: vcs)
        navi.title = title
        vc.present(navi, animated: true, completion: nil)
    }


push遷移
func pushUIStoryboard(name: String, vc: UIViewController, title: String? = nil) {
        let storyboard: UIStoryboard = UIStoryboard(name: name, bundle: nil)
        let next = storyboard.instantiateInitialViewController() ?? UIViewController()
        next.title = title
        vc.navigationController?.pushViewController(next, animated: true)
    }