在段类型选项卡的子视图中创建 uitableview

Posted

技术标签:

【中文标题】在段类型选项卡的子视图中创建 uitableview【英文标题】:Create uitableview in sub view of segment type tabs 【发布时间】:2014-08-26 10:53:34 【问题描述】:

我正在开发一个应用程序,该应用程序具有 3 个选项卡,例如分段选项卡,当用户点击一个选项卡时,它将在视图中加载一个 uitable,因此我有 3 个选项卡,我想加载 3 个不同的 uitableviews。让我到目前为止的大部分代码。

ViewDidLoad 代码:

- (void) viewDidLoad
    [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];

    DKScrollingTabController *leftTabController = [[DKScrollingTabController alloc] init];

    leftTabController.delegate = self;
    [self addChildViewController:leftTabController];
    [leftTabController didMoveToParentViewController:self];
    [self.view addSubview:leftTabController.view];
    leftTabController.view.frame = CGRectMake(0, 170, 320, 60);

    leftTabController.view.backgroundColor = [UIColor colorWithRed:1.0 green:0.6 blue:0.7 alpha:1.0];/// Baby Pink Color
    leftTabController.buttonPadding = 53.3;
    leftTabController.underlineIndicator = YES;
    leftTabController.underlineIndicatorColor = [UIColor darkGrayColor];
    leftTabController.buttonsScrollView.showsHorizontalScrollIndicator = NO;
    leftTabController.selectedBackgroundColor = [UIColor grayColor];
    leftTabController.selectedTextColor = [UIColor whiteColor];
    leftTabController.unselectedTextColor = [UIColor whiteColor];
    leftTabController.unselectedBackgroundColor = [UIColor clearColor];

    leftTabController.selection = @[@"PLACE\n0", @"PLACE\n0", @"PLACE\n0" ];
    [leftTabController setButtonName:@"Ingredients\n07\nCount" atIndex:0];
    [leftTabController setButtonName:@"Nutrition\n334\nCalories" atIndex:1];
    [leftTabController setButtonName:@"Directions\n30\nMinutes" atIndex:2];

    [leftTabController.buttons enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) 
        UIButton *button = obj;
        button.titleLabel.numberOfLines = 3;
        button.titleLabel.textAlignment = NSTextAlignmentCenter;

        NSString *buttonName = button.titleLabel.text;
        NSString *text =  [buttonName substringWithRange: NSMakeRange(0, [buttonName rangeOfString: @"\n"].location)];
        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:buttonName];
        NSDictionary *attributes = @ NSFontAttributeName : [UIFont systemFontOfSize:10] ;
        NSRange range = [buttonName rangeOfString:text];
        [attributedString addAttributes:attributes range:range];

        button.titleLabel.text = @"";
        [button setAttributedTitle:attributedString forState:UIControlStateNormal];
    ];
    [super viewDidLoad];

#pragma mark - TabControllerDelegate

- (void)DKScrollingTabController:(DKScrollingTabController *)controller selection:(NSUInteger)selection 
    if (selection == 0) 
        NSLog(@"index 1");
    if (selection == 1) 
        NSLog(@"index 2");
    if (selection == 2) 
        NSLog(@"index 3");
    

到目前为止,它的 nsloging 正确,但我不知道如何在这些选项卡中加载 uitable。谢谢。

【问题讨论】:

【参考方案1】:

ObjectiveC 有一个内置标签栏。您可以轻松加载它。

关于为表中的每个选项卡加载不同的数据。你有 不同的选择:

每次在表中加载正确的数据。 在表格中包含所有数据(例如,在不同的部分并隐藏/显示它们) 有 3 个不同的表(在不同的 uiView 上)。 有不同的 UIViewControllers 可能还有其他选项。

我会选择不同 UIViews 选项的不同表格。

【讨论】:

以上是关于在段类型选项卡的子视图中创建 uitableview的主要内容,如果未能解决你的问题,请参考以下文章

如何在作为选项卡的 2 个片段之间共享视图模型

保存选项卡的最后状态

无法在 viewpager 上获取选定选项卡的位置

底部导航视图中选定选项卡的颜色

从任何其他选项卡的视图控制器中弹出第二个选项卡的根视图(默认)

从 django 视图中打开新选项卡的命令