2

TwitterforiPhoneのナビゲーションスタイルがどのように実装されているかを理解しようとしています。

タイムラインでツイートをタップすると、タイムラインから詳細ビューへの移行中、(カスタム)タブバーは所定の位置に留まります。これは、タブバーが「メイン」のサブビューであることを示しています。このサブビューには、タブごとに1つずつUIViewController、4つの配列が含まれていUINavigationControllersます。タブが押されると、メインUIViewControllerは現在表示されているものをビューから削除しUINavigationController、新しいタブをサブビューとして追加します。このアプローチでは、タブバーはナビゲーションスタックの一部ではないため、各遷移中に所定の位置に留まります。

ただし、詳細ビューでURLをタップすると、タブバーが画面外に移動し、新しいツールバーが表示されます。これは、上記の理論と矛盾します。

Tweetbotは、公式Twitterアプリとは正反対のナビゲーションスタイルを使用しています。Tweetbotのタイムラインでツイートをタップすると、タブバーが画面外に移動します。移行中、タブバーが所定の位置に留まることはありません。彼らはおそらく1つUINavigationControllerを使用し、メインUIViewController+タブバーをrootviewcontrollerとして使用します。ユーザーがツイートをタップすると、タイムラインが委任などを介し[self.navigationController pushViewController:]てメインを呼び出すと思います。UIViewController

実際、Twitter for iPhoneは、最初の理論とTweetbotのナビゲーションスタイルの背後にある理論を組み合わせています。公式Twitterアプリの機能をどのように実現できますか?

4

1 に答える 1

2

これは非常に単純化された説明かもしれません、そして多くは記憶によって進んでいます、しかし私はこれがあなたをあなたの道に連れて行くべきだと思います…</ p>

ルートビューコントローラは、ほとんどがゼロから実装されたタブバーコントローラです。もともとは、簡単なiOS APIが登場する前は、カスタムタブバーのスタイル設定のためでした。ただし、コードを所有し続けることで、ツールバーとタブバーの交換を追加することはそれほど難しくありませんでした。

ルートビューコントローラは、タブバービューとツールバービューの両方を所有しています。ルートビューコントローラーは、各タブのナビゲーションコントローラーの代理です。ナビゲーションコントローラーが新しいビューコントローラーをプッシュすると、メインビューコントローラーはtoolbarItemsがあるかどうかを確認し、スワップを管理します。

使いやすさの理由から、通常、タブバーをツールバーに置き換えることはお勧めできません。タブバーは、画面上のコンテンツへの接地を提供します。ブラウザのタブを考えてください。タブバーの項目を使用すると、タブがアクティブなときにそれをタップすることで、階層内のルートビューコントローラーにジャンプすることもできます。(これは最も発見しやすい機能ではありませんが、少なくともシステム全体で標準です。)

これは難しいルールではありません。ナビゲーション階層の「リーフ」のタブバーを置き換えるのが一般的です。Music.appとPhotos.appを考えてください。強い説得力のある理由がない限り、それは避けてください。

于 2012-08-25T21:33:15.227 に答える