如何改变中心点击在iphone左侧的控制器的tableview行?(MFSideMenu)

我使用MFSideMenu为我的iPhone应用程序来实现一个侧栏。 我已经成功实施了侧边栏。 在我的appdelegete下面的代码

- (ViewController *)demoController { return [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; } - (UINavigationController *)navigationController { return [[UINavigationController alloc] initWithRootViewController:[self demoController]]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; LeftSlideViewController *leftMenuViewController = [[LeftSlideViewController alloc] init]; MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController containerWithCenterViewController:[self navigationController] leftMenuViewController:leftMenuViewController rightMenuViewController:nil]; container.navigationController.navigationItem.rightBarButtonItem=nil; self.window.rootViewController = container; [self.window makeKeyAndVisible]; return YES; } 

现在让我解释我的问题..

我有视图控制器名称与LeftSideViewController其中有UITablview而在应用程序启动时有一个视图控制器作为中心视图命名为“视图控制器”我不需要右视图控制器,所以我dint包括

现在我在我的左边控制器中有UITableview,点击那个UITableview的行,我必须改变中心视图。

我的问题是,当我把这个代码在我的左侧视图控制器的uitableview delegete方法,因为这不会改变我的centerview与新的视图控制器

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // Load new front view MFSideMenuContainerViewController *menuController = (MFSideMenuContainerViewController*)((AppDelegate*)[[UIApplication sharedApplication] delegate]).viewController; PhotoGalleryViewController *SearchBarTableView=[[PhotoGalleryViewController alloc]initWithNibName:@"PhotoGalleryViewController" bundle:nil]; [self.navigationController pushViewController:SearchBarTableView animated:YES]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:SearchBarTableView]; menuController.centerViewController=navController; //[menuController1 setRootController:navController animated:YES]; [tableView deselectRowAtIndexPath:indexPath animated:YES]; } 

任何人都可以请给我一些指导,如何相应地改变视图的左侧视图的UITableview行点击。

我也使用MFSideMenu。 以下是我如何处理didSelectRowAtIndexPath …

虽然,我正在使用我的故事板。 但是我也像你一样在ViewController中embedded了视图控制器,我发现这种转换方法是可行的。

 if (indexPath.section ==1 ){ if (indexPath.row==0){ UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]]; UITabBarController *destNav = [storyboard instantiateViewControllerWithIdentifier:@"MainTabBar"]; [self.menuContainerViewController setCenterViewController:destNav]; } if (indexPath.row==1){ UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]]; UINavigationController *destNav = [storyboard instantiateViewControllerWithIdentifier:@"TopNavID"]; [self.menuContainerViewController setCenterViewController:destNav]; } if (indexPath.row == 2){ UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]]; UINavigationController *destNav = [storyboard instantiateViewControllerWithIdentifier:@"OptionsNavID"]; [self.menuContainerViewController setCenterViewController:destNav]; } } [self.menuContainerViewController setMenuState:MFSideMenuStateClosed]; 

你应该从你的centerview和LeftSideViewController实现委托方法。 所以实际上改变视图的方法就是从你的centerview方法。 我didSelectRowAtIndexPath中的代码:

 else if (indexPath.section==1 && indexPath.row==0) { [delegate chooseCategory:2]; } else if (indexPath.section==1 && indexPath.row==1) { [delegate chooseCategory:3]; } else if (indexPath.section==1 && indexPath.row==2) { [delegate chooseCategory:15]; } 

chooseCategory是从centerview中改变视图的方法。