Techioz Blog

Turbo-iOS アプリでページ タイトルが変更されないのはなぜですか

概要

Ruby on Railsアプリでは、headタグ内に以下のコードでタイトルを設定しています。

<%= <span class="citation" data-cites="title">@title</span> %>

@title は各ページのコントローラー アクションに設定されます。 Web アプリとして実行すると、これは正常に動作します。しかし、Turbo-iOS アプリとして実行すると、ページ間を移動するとき、タイトルは開始ページのタイトルから変わりません。カスタム ユーザー エージェントの設定を除いて、標準のturbo-ios SceneDelegate クラスには何も変更を加えていません。

Turbo-iOS のドキュメントによると

「デフォルトでは、Turbo iOS は Visitable ビュー コントローラーの title プロパティをページのタイトルに設定します。」

では、なぜこのようなことが起こるのでしょうか?また、どうすれば解決できるのでしょうか?

また、turbo-ios デモ アプリを取得し、Demo.swift の Basic と Turbolinks5 の定義を変更してアプリを指すようにしました。ページ間を移動できますが、タイトルは変わりません。

アップデート

このタグを

から削除すると、

<%= turbo_include_tags %>

これにより問題が修正され、アプリの上部セクションに < ナビゲーション リンク (戻る) が表示されます。したがって、問題はターボドライブにあるようです。 Turbo Driveを使用する必要があるのですが、回避策はありますか?

解決策

上記の @Maniac のコメントによると、Turbo のドキュメントには「不必要な再レンダリングやナビゲーション ジェスチャを避けるために、Turbo Drive はデフォルトで Turbo iOS ビュー コントローラーのタイトル プロパティの更新を回避します。」と記載されています。

ただし、strada-iosを使用してネイティブトップメニューを実装したとき コードを追加しなくても、タイトルは正しく変更されます。