2012-08-04 144 views
0

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

他们工作的很棒!但他们不推动任何vc。

在 - (无效)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

在我认为你的问题是太暧昧了。究竟是什么问题?请多解释一下? – 2012-08-04 14:11:19

+0

此示例项目指导我向一个视图控制器添加两个表视图:https://github.com/vikingosegundo/my-programming-examples/tree/master/TwoTableViews didSelectRow ..方法正常,但我无法推送任何视图控制器,当我点击表视图中的任何单元格。 – gokhangultekin 2012-08-04 14:20:23

+0

我正在看它现在你的示例代码项目。你的pushViewController代码在哪里?你说推,这是什么意思?通常,推动平均值是以下代码。 [[self navigationController] pushViewController:yourViewController]]; – 2012-08-04 14:32:06

回答

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

} 
+0

它的工作!非常感谢你!!! – gokhangultekin 2012-08-04 15:04:28

相关问题