UINavigationController显示空白视图

时间:2011-03-05 23:13:11

标签: objective-c uiviewcontroller iphone

我正在制作一个简单的基于导航的应用程序,它可以向下钻取一个级别并每次显示一个新的xib文件。当我向下钻取一个级别时,我的屏幕显示为空白。我仍然在顶部有一个带有后退按钮的导航控制器,但是我的视图已加载。

这是我的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    circle_area *subViewOneController = [[circle_area alloc] init];
    UIViewController *tvc = subViewOneController;
    if (indexPath.row == 0 && indexPath.section == 0) {
        [[self navigationController] pushViewController:tvc animated:YES];
    }
}
像我说的那样返回一个空白屏幕。

我的更新代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
circle_area *subViewOneController = [[circle_area alloc] init];
UIViewController *tvc = subViewOneController;
switch (indexPath.section) {
    case 0:
        switch (indexPath.row) {
            case 0:
                NSLog(@"section %i special button!", indexPath.section);
                NSLog(@"row %i special button!", indexPath.row);
                break;
            default:
                break;
        }
        break;
    default:
        break;
}
NSLog(@"section %i!", indexPath.section);
NSLog(@"row %i!", indexPath.row);
NSLog(tvc.view.recursiveDescription);
if (indexPath.row == 0 && indexPath.section == 0) {
    [[self navigationController] pushViewController:subViewOneController animated:YES];
}
[tvc release];
}

上次我在中间省略了开关时,看起来它们会影响任何东西,但这次我把它们包括在内。

1 个答案:

答案 0 :(得分:2)

circle_area *subViewOneController = [[circle_area alloc] init];

在这一行中,您将创建circle_area类的实例,并将其分配给名为subViewOneController的指针。

UIViewController *tvc = subViewOneController;

在此行中,您将同一实例分配给名为tvc的指针。该指针被定义为指向UIViewController类的实例。

目前尚不清楚你在这里要做什么。什么是circle_area?为什么冗余分配? circle_areaUIViewController的子类吗?如果不是,那就是问题,你应该被编译器警告过。

此外,您有内存泄漏。您为此circle_area实例分配内存,但不释放它。