在一个视图控制器中的两个表视图 - 推动任何视图控制器不工作

时间:2012-08-04 14:07:39

标签: iphone ios uitableview tableview

我在一个视图控制器中有两个表视图。

他们很棒!但他们并没有推动任何vc。

我的主视图控制器中的 - (void)viewDidLoad方法:

horizontalViewController = [[HorizontalViewController alloc] init];

verticalViewController = [[VerticalViewController alloc] init];


[horizontalTableView setDataSource:horizontalViewController];

[verticalTableView setDataSource:verticalViewController];


[horizontalTableView setDelegate:horizontalViewController];

[verticalTableView setDelegate:verticalViewController];


horizontalViewController.view = horizontalViewController.tableView;

verticalViewController.view = verticalViewController.tableView;

我该怎么办?

感谢。

1 个答案:

答案 0 :(得分:0)

参考以下代码。如果你想使用pushViewController方法。 你必须有一个NavigationViewController。 所以,你的结构有点复杂。一个ViewController有两个TableViewController。一个ViewController没有NavigationController。 NavigaitonViewController在运行时必然属于应用程序,因为它应该被配置。

<强> TwoTableViewsAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    UINavigationController *naviController = [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease];
    [window setRootViewController:naviController];
    [window makeKeyAndVisible];

    return YES;
}

<强> TwoTableViewsViewController.m

- (void)viewDidLoad {

    if (firstController == nil) {
        firstController = [[FirstTVContoller alloc] init];
    }
    if (secondController == nil) {
        secondController = [[SecondTVController alloc] init];
    }

    [firstTable setDataSource:firstController];
    [secondTable setDataSource:secondController];

    [firstTable setDelegate:firstController];
    [secondTable setDelegate:secondController];

    firstController.view = firstController.tableView;
    secondController.view = secondController.tableView;

    firstController.rootViewController = self;
    secondController.rootViewController = self;

    [super viewDidLoad];
}

FirstTVContoller.h,SecondTVController.h

#import <Foundation/Foundation.h>

@interface FirstTVContoller : UITableViewController <UITableViewDataSource, UITableViewDelegate>{
    NSMutableArray *items;
}

@property (nonatomic, retain) UIViewController *rootViewController;

@end

FirstTVContoller.m,SecondTVController.m

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    VerticalDetailViewController *verticalDetailViewController = [[VerticalDetailViewController alloc] initWithNibName:@"VerticalDetailViewController" bundle:nil];
    [[self.rootViewController navigationController] pushViewController:verticalDetailViewController animated:YES];

}