nextCategoryController

nextCategoryController

我正在构建第一个基本的选项卡式应用程序,将其中一个视图用作导航控制器,它将显示一个视图控制器。

我在用户从第一个表格视图中选择类别时遇到问题,如屏幕截图所示:http://www.cl.ly/7YOF

当将tableviewcontroller的另一个实例加载并推到Navigationcontroller的堆栈上时,标题栏将阻塞该表:
http://www.cl.ly/7ZRz

表格视图选择逻辑如下:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    KHCategory * selectedItem = [categoryArray objectAtIndex:indexPath.row];
    如果(selectedItem.categories.count> 0){
        KHCategoryTableViewController * nextCategoryController = [[[KHCategoryTableViewController alloc] init];
        nextCategoryController.categoryArray = [[NSArray alloc] initWithArray:selectedItem.categories];
        nextCategoryController.title = selectedItem.labelValue;

        [self.navigationController pushViewController:nextCategoryController动画:是];
        [nextCategoryController版本];
    }其他{
        NSLog(@“显示详细视图”);
    }
}


编辑:
我应该清楚知道,KHCategoryTableViewController的实例是我NavigationController的根,并且NavController连接到TabController的第一个选项卡。

最佳答案

有两件有趣的事情:它缩小20像素(状态栏的大小),并且您的行“ nextCategoryController.title = ...”似乎没有任何作用。所以...

1)我假设您没有使用setStatusBarHidden

2)看起来navController的东西不起作用。您能否提供来自创建tabBar和NavController的appDelegate的代码?

3)添加此代码,然后尝试从子类别[self dumpWindow: @"VDL"]方法调用ViewDidLoad。每当检查我的视图结构是否正确时,我都会发现它非常宝贵。

- (void) dumpWindowFrom:(NSString *) fromText {
    [self dumpViews: nil from:fromText];
}

void dumpViewsRecursive(UIView* view, NSString *text, NSString *indent) {
    Class cl = [view class];
    NSString *classDescription = [cl description];

    if ([text compare:@""] == NSOrderedSame)
    NSLog(@"%d: %@ %@ %@", (int)view, classDescription, NSStringFromCGRect(view.frame), view.hidden ? @"Inv" : @"Vis");
else
    NSLog(@"%d: %@ %@ %@ %@", (int)view, text, classDescription, NSStringFromCGRect(view.frame), view.hidden ? @"Inv" : @"Vis");

    for (NSUInteger i = 0; i < [view.subviews count]; i++)
    {
        UIView *subView = [view.subviews objectAtIndex:i];
        NSString *newIndent = [[NSString alloc] initWithFormat:@"  %@", indent];
        NSString *msg = [[NSString alloc] initWithFormat:@"%@%d:", newIndent, i];
        dumpViewsRecursive (subView, msg, newIndent);
        [msg release];
        [newIndent release];
    }
}

- (void) dumpViews: (UIView *) view {
    dumpViewsRecursive  (( (!view) ? [[UIApplication sharedApplication] keyWindow] : view), @"" ,@"");
}

- (void) dumpViews: (UIView *) view from:(NSString *) fromText{
    dumpViewsRecursive ((!view) ? [[UIApplication sharedApplication] keyWindow] : view, fromText, @"");
}


4)您总是可以作弊并添加:

CGRect frame = [nextCategoryController.view frame];
frame.origin.y = frame.origin.y+20.0;
[nextCategoryController.view setFrame:frame];

关于iphone - 标题栏阻碍了TableView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6324925/

10-09 13:19