0

iOS Storybords にタブバー アプリケーションがあります。UITabbarcontroller は --> 4 セットの (UInavigation コントローラー --> UItableview コントローラー) に接続されます。各 UITableviewcontroller セルは、プッシュされる複数の UIviewcontroller に接続されています。

アプリのビルドについて - View Controller の上部にナビゲーション タブが問題なく表示されます。ただし、下部に 4 つの項目があるタブバーは、最初のビューでのみ表示されます。UIviewcontrollers は 4 項目の Tabbar を表示しません!??。属性インスペクターでボトムバーをタブバーに設定しました。しかし、うまくいきませんか?

私が理解している以上のことがあるに違いないと私は信じています。誰かが助けてくれることを願っています。

アプリ全体にタブバーを表示する方法は?

4

3 に答える 3

1

このようにタブバーを追加できます:-

Appdelegate.h

#import <UIKit/UIKit.h>

@class StartingViewController;

@interface Appdelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    StartingViewController *viewController;

    UITabBarController *tabBarController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet StartingViewController *viewController;

@property (nonatomic,retain) UITabBarController *tabBarController;

-(void)addTabBarToView;

@end

アプリdelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.

    // Add the view controller's view to the window and display.
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

    [self addTabBarToView];

    return YES;
}

-(void)addTabBarToView{

    FirstController *first = [[FirstController alloc] initWithNibName:@"FirstController" bundle:nil];
    first.title = @"First";

    SecondController *second = [[SecondController alloc] initWithNibName:@"SecondController" bundle:nil];
    second.title = @"Second";

    ThirdController *three = [[ThirdController alloc] initWithNibName:@"ThirdController" bundle:nil];
    first.title = @"Third";

    Forthcontrooler *Four4 = [[Forthcontrooler alloc] initWithNibName:@"Forthcontrooler" bundle:nil];
    second.title = @"Secfor";





   UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:first];

   UINavigationController *navigationController2 = [[UINavigationController alloc]initWithRootViewController:second];

   UINavigationController *navigationController3 = [[UINavigationController alloc] initWithRootViewController:three];

   UINavigationController *navigationController4 = [[UINavigationController alloc]initWithRootViewController:Four4];



    tabBarController = [[UITabBarController alloc] init];        

    tabBarController.viewControllers = [NSArray arrayWithObjects:navigationController1,navigationController2,navigationController3,navigationController4,nil];

    [window addSubview:tabBarController.view];

}
于 2012-11-24T05:07:01.637 に答える
1

あなたのデザインは完全にはわかりませんが、役立つと思われるヒントをいくつか紹介します。

ストーリーボードのデザイン:

基本的なタブバーアプリケーションのレイアウトは、通常、左から右に次のようになります。左側の最初のコントローラーには、開始コントローラーであることを示す小さな矢印が付いています。

  • 最初のコントローラーはタブバーコントローラーである必要があります
  • 各タブはナビゲーションコントローラーに接続する必要があります
  • 各ナビゲーションコントローラーは、1つ以上のUIViewControllersまたはUITableViewControllersに接続する必要があります。

ここで、高度な構成がありますが、これはアプリを適切にセットアップし、各タブのプッシュ遷移を簡単にする一般的なレイアウトにすぎないことに注意してください。

アプリが起動してタブバーが表示され、タブアイテムを選択すると、そのタブのViewControllerが表示されます。タブバーがまだそこにある場合は、その時点までは良好な状態です。そのViewControllerで何かを選択し、それが新しいView Controllerを画面にプッシュし、それが発生するとタブバーバーが失われる場合は、これが問題である可能性があります。-View Controllerを確認し、オブジェクトインスペクターでチェックマークを確認します。 「プッシュ時に下部バーを非表示にする」と呼ばれます-チェックされている場合-チェックを外します。そこに見つからない場合は、View Controllerのコードを調べて、viewがステートメントをロードしたようにスタートアップメソッドを調べます。self.hidesBottomBarWhenPushed= YES; そのコマンドを見つけた場合は、コメントアウトするか削除してください。

それがあなたのデザインであり、あなたのアプリケーションで理にかなっているなら、いくつかのViewControllerプッシュのタブバーを非表示にすることは完全にOKです。一般に、ユーザーエクスペリエンスのために、可能な場合はタブバーを画面に表示したままにしておくことをお勧めしますが、画面サイズなどの問題により、開発者がワークフローでタブバーを非表示にする場合があります。

これがお役に立てば幸いです。そうでない場合は、申し訳ありません。

于 2012-11-24T05:07:29.220 に答える
0

UINavigationControllers を s の中に入れるのUITabbarControllerではなく、その逆にする

于 2012-11-23T22:49:08.100 に答える