开发者

Is this the best way to dynamically load a UIViewController object based on item selection?

My root view contains three sections in a table view. Depending on which section is selected a corresponding view controller will be popped onto the view stack. The following didSelectRowAtIndexPath method is from my code and it works as I expect, but I was wondering if this is the correct/most elegant way to do it. I'm an Objective-C newcomer so I'm not sure if I should be intitializing the viewController to nil first.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UIViewController *viewController = nil;

    if (indexPath.section == 0) {
        viewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController开发者_如何学JAVA" bundle:nil];
    }
    else if (indexPath.section == 1) {
        viewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    }
    else if (indexPath.section == 2) {
        viewController = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
    }

    [self.navigationController pushViewController:viewController animated:YES];
    [viewController release];
}


You could do this in a swtch() statement, but otherwise, I think this is good. The only other change would be to check for a viewController before pushing:

if (viewController != nil) [self.navigationController pushViewController...
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜