0

我有一个MenuViewController和一个UINavigationController坐在ViewDeck里面,一个侧面菜单的框架。您只需像这样启动:

ListingViewController* lvc = [[ListingViewController alloc] init]; 
UINavigationController* homeNavStack = [[UINavigationController alloc] initWithRootViewController:lvc];
MenuViewController* sideMenu = [[MenuViewController alloc] init]; 
IIViewDeckController* slideController = [[IIViewDeckController alloc] initWithCenterViewController:homeNavStack leftViewController:sideMenu];

其中中心视图控制器是我的导航控制器,而菜单视图控制器隐藏在左侧,必须向左滑动才能使其可见(类似于 facebook 的侧边菜单)。

侧面菜单中有一个按钮,按下该按钮时,需要将应用程序转换回导航控制器,并让它推送一个新的视图控制器。这是我的代码,里面MenuViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    if(indexPath.row == 0){
        NSLog(@"check"); 
        UserProfileViewController* userProfile = [[UserProfileViewController alloc] init];
        [self.viewDeckController toggleLeftViewAnimated:YES];
        [self.centerViewController pushViewController:userProfile animated:YES]; 
    }
}

toggleLeftViewAnimated带回中心视图控制器,再次隐藏侧面菜单。我已经给侧边菜单一个对中心视图控制器的引用,并使用它,我要求它推送一个新的视图控制器。但是,当调用此方法时,中心视图控制器返回视图后没有任何反应。有谁知道为什么这不起作用?

4

1 回答 1

0

检查 self.centerViewController 是否是您添加为中心视图控制器的导航控制器实例。您需要获取已添加到 IIViewDeckController 中的 Navigation Controller 实例,现在您正在使用 self(可能是 MenuViewController)。我认为您需要编写一个方法来从 IIViewDeckController 获取导航控制器,然后推送您的 userProfile 将完美运行。

于 2013-09-23T12:18:08.350 回答