0

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

他们工作得很好!但他们并没有推动任何风险投资。

在我的主视图控制器中的 -(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;

我能做些什么?

谢谢。

4

1 回答 1

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];

}
于 2012-08-04T14:54:28.670 回答