1

私はいくつかのビューを表示するiPhoneアプリを開発していますが、すべてタブバーアイテムを介してアクセスされます。ただし、SafariでURLを起動するだけのアイテムをタブバーに追加する必要があります。

これを実現するには、TabBarに空のプレースホルダービューを追加し、このビューのtabBarItemがクリックされたときにshouldSelectViewControllerからFALSEを返し、同時にSafariを起動します。

そのコードは次のとおりです。

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
 if([[viewController tabBarItem] title] == "Website"){
            //... launch Safari
  return FALSE;
 } else {
  return TRUE;
 }
}

問題:TabBarの項目が多すぎて、この[Safari起動]タブが[その他]ナビゲーションコントローラーにプッシュされると、イベントをインターセプトして、クリックしたときにビューが読み込まれないようにする機能が失われます。

提案されたヒントはありますか?

4

2 に答える 2

1

そのタブに、単に Web サイトを含む UIWebView を表示することを検討することもできます。

タブ バーの項目でアプリケーションを終了して別の項目を起動することは、予期された動作ではありません。

于 2010-03-31T17:10:49.750 に答える
0

私の考えでは、ユーザーがタブバーの項目をカスタマイズできないようにすると、「Safari Launch」が「More」にプッシュされることは決してありません。タブ バーの customizableViewControllers を nil または空の配列に設定することで、編集を禁止できます。

于 2010-03-31T17:13:46.463 に答える