0

AppCoda のこのチュートリアルに従って、TabApplicationで発生した問題を解決しましたが、そうではありません。この戦術を使用して、タブのタイトルが表示されない問題を解決しました。ローカルイベントのバンドを一覧表示するアプリです。だからあなたは持っています:

 TabBarController > Nav1 > RELATIONSHIP > Home
                     > Nav2 > RELATIONSHIP > ARTISTS > UIBUTTON > push to new page.
                     > etc.

それらはすべて素晴らしく機能します。アーティストの画像 (UIButton) をクリックすると、そのページに移動します。上部はバナー (UIIMAGE) で、下部は UISCROLLVIEW です。

ここに私の問題があります:アーティストボタンをクリックしてUIScrollViewを一番下までスクロールすると、別のタブボタンを押してページを離れると競合が発生します:ボタンをタップしてアーティストリストに戻ると(指定されていませんアーティスト) 中断した場所に移動し、UIScrollView の下部とリンク付きのタブ バーの間にぎこちないギャップがあります。

6 つの UIBUTTON を使用してアーティスト ページに戻るように指定する方法はありますか? それとも、画面の下部にある TabBar オプションの GET RID でさえありますか? UISCROLLVIEW のコーディング方法がわかりません。Storyboard を使用して ScrollView を描画しただけです。

___________________________________

|                                 |
|_________ARTIST____________NAME__|
|                                 |
|            :)                   |
|                                 |
|                                 |
|                                 |
|                  :)             |
|_________________________________|
|                                 |
|                                 |
|   .....UISCROLLVIEW             |
|_________________________________|
|MAKE_BLANK __BAR_____NO LINKS____| Sorry for the horrible example.
4

1 に答える 1

0

私が理解しているように、ナビゲーションの問題は次のとおりです。

タブ 2 には、最初の viewController がアーティスト名のリストである Navigation Controller があります。アーティスト名を選択すると、そのアーティストの詳細を表示する 2 番目の viewController (まだタブ 2 にあります) に移動します。

ここで、タブ 1 に移動して他の作業を行い、タブ 2 に戻ると、アーティスト名のリストを含む最初の viewController が表示されるようにする必要があります。これにより、アプリのナビゲーションが不十分な状態になります (scrollView に問題があります)。

そこであなたがしたいことは、ユーザーがアーティストのページからタブ移動するのを防ぎ、別の場所からアーティスト リストに戻らなければならないようにすることです

これは、navigationController の viewController のスタックにプッシュするのではなく、最初の viewController からアーティストの viewController を提示することで実現できます (これは現在行っていると思います)。

これを行うには、実際には tab2 でナビゲーション コントローラーを使用しないため、削除することを選択できます (他の理由で上部の navBar が必要でない限り)。

コード内

artistNamesViewController から、アクションを含むボタンを作成します。

- (IBAction) presentArtistsDetailViewController:(id)sender
{
     ArtistsDetailViewController* artistsDetailViewController = [ArtistsDetailViewController alloc] init];

     //set up artistsDetailViewController properties here

     [self presentViewController:artistsDetailViewController animated:YES completion:nil];
}

ストーリーボードの使用

コードの代わりに、セグエ行をボタンから artistDetailViewController にドラッグし、セグエ タイプを選択しますmodal。でプロパティを初期化する必要がある場合はartistsDetailViewControllerprepareForSegue

このタイプのナビゲーションでは、デフォルトのスライドアップ アニメーションを使用して新しい viewController が表示され、画面全体が変化することがわかります。タブ バーが失われます。modalTransitionStyleプロパティを on に設定すると、アニメーションを変更できますartistsDetailViewController

戻るナビゲーションは、次のような IBAction を使用して「閉じる」ボタンを追加することで制御されます...

  - (IBAction) dismiss:(id) sender
  {
    [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]
  }

ユーザーは、最初の artistNamesViewController にいる場合にのみ、タブ 2 から離れることができます。アーティストの詳細ページに移動するたびに、それを再作成して再初期化するため、scrollView に問題が発生することはありません。これは、scrollView の問題が発生している可能性があるアプリの他の部分には対処しませんが (コメントで提案されているように)、それは別の問題です。ナビゲーション ロジックに対処したかったのです。

ナビゲーション コントローラーが関与していないため、この方法では、artistsDetailViewController の上部にナビゲーション バーは表示されません。ナビゲーション バーが必要な場合は、ストーリーボードの viewController に手動で配置できます。

于 2013-01-28T20:37:06.807 に答える