0

これについての助けに本当に感謝します-RayWenderlich.comのスクローラーのようなパルスに関するチュートリアルのように、ネストされたUITABLEVIEW内からtabbarcontrollerのタブを変更する方法を見つけようとしていますhttp://www.raywenderlich .com/4723/how-to-make-an-interface-with-horizo​​ntal-tables-like-the-pulse-news-app-part-2しかし、本当に行き詰まっています。ストーリーボードと xcode 4.4 を使用しています

私は数週間の時点で xcode にまったく慣れていないので、これが初心者の質問である場合は申し訳ありません。上記のリンクの画像のように、ネストされた水平テーブルビューが正常に機能していますが、画像を使用して新しいタブに切り替えたいのですが、できません。これは、テーブルビューがネストされているため、見つけることができないためだと思います階層内の tabbarcontroller への正しい参照。

チュートリアルにコメントが含まれている ArticleListViewController.m didselect を使用すると、挿入ナビゲーション コードが NSLog 出力を生成し、タブを変更することを示唆しているように見えますが、画像の上にある小さな細いストリップのみを使用します (偶然にこれを発見しました)。画像。

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
   {
      // Navigation logic may go here. Create and push another view controller   

   //THIS SELECTS WHEN CLICK THINSTRIP JUST ABOVE BUTTONS
   NSLog(@"ARTICLELISTVIEWCONTROLLER check didSelect: %u", self.tabBarController.selectedIndex);  

   self.tabBarController.selectedIndex = 2;
       }

Horizo​​ntaTableCell.m 内の次のコードは、実際の画像をクリックすると NSLog 出力をより適切に生成しますが、タブを変更できる tabbarcontroller 参照を理解できません。

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
   {

    //the following line just generates an Error as follows: Property tabBarController not found on object of type 'HorizontalTableCell *'  

   self.tabBarController.selectedIndex = 2;

   NSLog(@"HORIZONTALTABLECELL DIDSELECT");

   }

私はこれを回避する方法を探して探しましたが、それを理解することはできません. appdelegate の使用に関する言及が見つかりましたが、これを行う方法がわかりません。新しいユーザーとしてストーリーボードの画像を投稿することはできませんが、4 つのナビゲーション コントローラーを備えた tabbarcontroller が出てきます。最初は ArticleListViewController メニューで、その他はそれぞれ viewcontrollers です。選択されたメニューと、概要画面と追加の現在空白の画面のその他。

助けてください!

ありがとう!

4

1 に答える 1

0

アプリデリゲートのプロパティとして tabBarController を持っていると思いますか?

次の方法でアプリのデリゲートに到達できます。 [[UIApplication sharedApplication] delegate]

それをアプリのデリゲート クラスにキャストすると、コンパイラはタブ バー コントローラーに到達したことを警告しません。このような:

((YourAppDelegate *) [[UIApplication sharedApplication] delegate]).tabBarController.selectedIndex = 2;

tableview デリゲート メソッドに関しては、ArticleListViewController が必要な場所のように聞こえます。セルは、せいぜいマイナーなプレゼンテーション ロジックを備えたダム ビューである必要があります。呼び出されない場合は、テーブル ビューのデリゲートとして適切に設定されていることを確認してください (リンク先のチュートリアルに従っている場合は、インターフェイス ビルダーで)。

于 2012-08-26T23:23:09.193 に答える