0

私のアプリにはTabBarControllerとがありViewController、 の1 つのセルを選択すると、他のセルが表示されず、ビューが画面の下部にサイズ変更されます。でデバッグするときViewControllerTableViewTableViewViewControllerTabBarControllerViewController

NSLog(@"%@", self.tabBarController.view.subviews);
NSLog(@"%@", self.view.subviews);

私が見た

2013-10-04 17:36:08.805 Btalk[6256:c07] (  
"<UITransitionView: 0x7d468a0; frame = (0 0; 320 431); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x7d46950>>",
"<UITabBar: 0x7a691b0; frame = (0 431; 320 49); autoresize = W+TM; layer = <CALayer: 0x7a692a0>>"
)

2013-10-04 17:36:10.737 Btalk[6256:c07] (
"<UITableView: 0x8b7ba00; frame = (0 0; 320 423); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x7aadcd0>; layer = <CALayer: 0x7aaee30>; contentOffset: {0, 0}>",
"<UIView: 0x7abfed0; frame = (0 423; 320 37); autoresize = W+TM; layer = <CALayer: 0x7abff30>>"
)

誰でも私のために説明できますか?

前もって感謝します。

4

1 に答える 1

0

で宣言した可能性がありUITabBarControllerますUIViewController。そうすれば、その View Controller だけが tabbarcontroller を持つことになります。App Delegate で tabbarcontroller を次のように宣言すれば問題ありません。

FirstViewController *firstViewController = [[FirstViewController alloc] init];
SecondViewController *secondViewController = [[SecondViewController alloc] init];
UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = @[firstViewController, secondViewController];

self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];

音楽アプリなど、iOS の機能を実現しようとしている場合は、UINavigationController. それは次のように機能します:

FirstViewController *firstViewController = [[FirstViewController alloc] init];
UINavigationController *firstNavigationController = [[UINavigationController] initWithRootViewController:firstViewController];

SecondViewController *secondViewController = [[SecondViewController alloc] init];
UINavigationController *secondNavigationController = [[UINavigationController] initWithRootViewController:secondViewController];

UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.viewControllers = @[firstNavigationController, secondNavigationController];

self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];
于 2013-10-04T11:02:39.397 に答える