4

SO で私の問題に対する答えを見つけることができませんでした。答えがすでにどこかに存在する場合は、私にリンクしてください! 私の問題はかなり一般的なようです.navコントローラーにテーブルビューが埋め込まれており、3つのアイテムを持つタブバーが必要です.3つのアイテムはテーブルビューを変更して異なるデータを入力します.最初のタブはビューがテーブルビューのデフォルトデータを表します.ロードされます。

しかし、単純な[tableView reloadData]. これをどのように行うのですか? また、これをストーリーボードに実装する方法は?

4

4 に答える 4

2

このように ctrl+drag を使用して、複数の関係を 1 つのコントローラーにセグエすることができます。

ストーリーボード> Ctrl キーを押しながら 1 つのナビゲーション コントローラーに 5 回ドラッグ

また、タブを変更するには CustomTabBarController.swift を作成する必要があります。ストーリーボードに描画される TabBarController のクラス名を変更することを忘れないでください。

class CustomTabBarController: UITabBarController {
    let MENUS = ["tab1", "tab2", "tab3", "tab4", "tab5"]

    override func viewDidLoad() {
        super.viewDidLoad()

        let items = tabBar.items!

        for (var idx=0; idx<items.count; idx++) {
            items[idx].title = MENUS[idx]
            items[idx].tag = idx
        }
    }
...
}

ViewController.swift でタグまたは選択したタブのインデックスを使用できます

let tag = self.tabBarController?.tabBar.selectedItem!.tag

let selectedIndex = self.tabController?.selectedIndex
于 2016-02-11T09:56:24.067 に答える
1

あなたができることは、同じクラスを再利用し、あなたのviewDidLoadメソッドをチェックインして、あなたtableViewの.

- (void)viewDidLoad{
    //itemType is a property you set 
    //when instantiating the controller
    int index = self.itemType; 

    switch (index) {
        case 0:
            [self populateTab1];
            break;
        case 1:
            [self populateTab2];
            break;
        case 2:
            [self populateTab3];
            break;
        default:
            break;
    }


}
于 2014-07-21T18:02:16.787 に答える
1

UITabbarストーリーボードで、テーブル ビュー コントローラーに追加します。UITabbarViewControllerビュー コントローラーのコンテナーとして機能する which を使用しないでください。一方、UITabbar単なるコントロールユニットです。

タブ バーのデリゲートをテーブル ビュー コントローラーに設定し、次のプロトコル メソッドを追加します。

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;

このメソッドで正しいデータをロードできます。選択したアイテム(ボタン)のインデックスを取得するには、次のようにします。

NSUInteger index = [tabBar.items indexOfObject:item];
于 2014-07-21T18:38:49.640 に答える