簡體   English   中英

一個視圖控制器中的兩個表視圖-推入任何視圖控制器均不起作用

[英]Two table view in one view controller - pushing any view controller is not working

我在一個視圖控制器中有兩個表視圖。

他們很棒! 但是他們沒有推動任何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;

我能做什么?

謝謝。

參考隨后的代碼。 如果要使用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];

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM