戻るボタンは、それがどこから来たのか別のuitableviewcontrollerに戻ります

StackOverflow https://stackoverflow.com/questions/2113387

  •  22-09-2019
  •  | 
  •  

質問

uitableviewcontroller aとuitableviewcontroller Bを持っているとします。AとBの両方がuiview Cを搭載しています。Cのバックボタンで、それがどこから来たのではなく、常にBに戻ることを確認しますか?

具体的な例は次のとおりです。A= iPhone Skypeの連絡先ウィンドウ。 b =チャットウィンドウ、各行は別の人とのチャット履歴ですc =チャットウィンドウは同じ人との会話を表示します。

cはaまたはbからロードできますが、チャットウィンドウのバックボタン(c)をチャット(b)ウィンドウに戻す必要があります。

乾杯。

役に立ちましたか?

解決 4

私はから答えを得ました Google Group そして彼の提案に従って、それはうまくいきます:

Sukimaから:SkypeやBeejiveのようなこれらのアプリケーションがしていることは、View A Wants biew cがuitabbarにメッセージを送信してチャットタブに移動し、詳細ビューCを押していると信じています。実際には、タブバーがハイライトを変更したという事実によってビューが変更されたことをユーザーが確認するため、実際には優れています。 From:さらに、Stackoverflowスレッドを読みます。私はあなたが何を求めているかを今理解しています。

他のヒント

これは、これが悪いUIデザインであり、APIがそれをサポートしていないため、これを実装するのが難しいと思うでしょう。

ユーザーは、バックボタンが使用している他のすべてのアプリと同様に、前のビューに「戻る」ことを期待します。他のビューに行くと、階層ではなくループであるため、さらに混乱します。ユーザーは時々B-> c-> bになりますが、それ以外の場合、a-> c-> b-> c。 (どのようにして戻ってきますか?)

Cのバックボタンの代わりに、右側にボタンがあり、Cに到達する方法に関係なく常にBに移動する必要があります。同じコンテキストの同じボタンは、常に同じ結果を生成する必要があります。ユーザーは、ボタンがどのようなアクションを発揮するかを予測するために、どのような目に見えないモードがあるかを覚えておく必要はありません。


edit01 :(以下のコメントへの応答)

(これはすべて私の頭の上から外れているので、一粒の塩でそれを取ります。)ナビゲーションコントローラーの使用を放棄し、代わりに自分でビューを管理する必要があります。各タブのビュープロパティのAおよびBビューをCビューとBビューを置き換えることにより、Tabbarを介してビューを交換する必要があります。

目に見えないマスタービューから始めて、タブバーを追加する必要があると思います。マスタービューコントローラーで、各ビューの属性/アウトレットを作成します。各ビューでは、マスタービューコントローラーにリンクされた属性/アウトレットを持っています。次に、AとBのCビューコールメソッドの「バックボタン」(これを強くラベル付けすることを強くお勧めします)を使用して、マスタービューコントローラーのメソッドを呼び出します。タブB(2)タブをBタブに切り替え、次に(3)ビューBをタブBにロードします。

このデザインがどれほど不安になっていると思いますか。他のアプリがそれを使用するかどうかは関係ありません。私の経験では、大手企業は、マーケティング部門がUIがユニークに見えることを望んでいるため、インターフェースの間違いを犯す可能性が高くなります。

比較すると、電話アプリが同じ状況をどのように処理するかを見てください。通話、お気に入り、連絡先、キーパッドなどに使用するタブに関係なく、呼び出しが完了したときにタブのビューに戻ってきます。別の方法で電話をかけたい場合は、適切なタブを押してください。

他の人の悪い例を無視してください。なぜ他の人の間違いを再現しようとしてそんなに時間と労力を費やすのですか?

あなたはいつも呼ばれるビューに戻ることになります pushViewController

Bを呼び出すメッセージを送信してもらえますか pushViewController?
私はあなたのアーキテクチャを理解していないかもしれませんが、それはうまくいくと信じています。

本当にこれを行いたい場合は、Cを押してCを押してからA(アニメーションなし)からBを押し、Cをプッシュするメソッドを呼び出すことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top