gpt4 book ai didi

ios - UINavigationController 中的 UITabBarController 中的 UITableViewController

转载 作者:可可西里 更新时间:2023-11-01 05:29:39 27 4
gpt4 key购买 nike

我的问题

我在 UINavigationController 中使用 UITabBarController。 UITabBarController 中有三个 TableView 。如图所示,第一个表格 View 正确显示,而其他两个表格 View 部分隐藏在导航栏后面。我该如何解决这个问题?

enter image description here enter image description here enter image description here

我的层次结构:

  • 根目录:UINavigationController
    • UITabBar Controller
      • UITableViewController (table1,table2,table3)

这是我的代码:

AppDelegate.m

#import "AppDelegate.h"
#import "TableViewController.h"
@interface AppDelegate()
@property UINavigationController* nav;
@end

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
TableViewController* table1 = [[TableViewController alloc]init];
TableViewController* table2 = [[TableViewController alloc]init];
TableViewController* table3 = [[TableViewController alloc]init];
table1.title = @"table1";
table2.title = @"table2";
table3.title = @"table3";
UITabBarController* t = [[UITabBarController alloc] init];
[t setViewControllers:@[table1,table2,table3]];
self.nav = [[UINavigationController alloc] initWithRootViewController:t];
[self.window setRootViewController:self.nav];
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application{}
- (void)applicationDidEnterBackground:(UIApplication *)application{}
- (void)applicationWillEnterForeground:(UIApplication *)application{}
- (void)applicationDidBecomeActive:(UIApplication *)application{}
- (void)applicationWillTerminate:(UIApplication *)application{}
@end

TableViewController.m

#import "TableViewController.h"
@implementation TableViewController
- (id)initWithStyle:(UITableViewStyle)style{
self = [super initWithStyle:style];
if (self) {}
return self;
}
- (void)viewDidLoad{
[super viewDidLoad];
[self.tabBarController.view layoutSubviews];
}
- (void)didReceiveMemoryWarning{
[super didReceiveMemoryWarning];
}
#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 10;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell* c = [[UITableViewCell alloc] init];
[c.textLabel setText:[NSString stringWithFormat:@"%d", indexPath.row]];
return c;
}
@end

最佳答案

通常,层次结构是

UITabBarController
- UINavigationController
- UITableViewController

为什么要将导航 Controller 放在顶部?尝试使用充满导航 Controller 的标签栏进行重组。

关于ios - UINavigationController 中的 UITabBarController 中的 UITableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20786036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com