0

我在我的应用程序中使用侧边栏菜单,就像在 facebook 中一样,所以我在这个菜单中有不同的单元格,我想要的是当单击一个单元格时将我推到另一个视图控制器。我在这里遇到一个问题:菜单是一个表格视图,我在情节提要中没有它,我使用了这个站点的一些类:github

我被困在这里,在我的应用程序中,我使用了一个故事板,但是这个菜单是用代码编程的,并且在 stroyboard 中没有视图,

在 didSelectRowAtIndexPath 方法中:我这样使用

    for(int j=0; j< 9 ; j++)
    {
               if(indexPath.row == j)
               {
                     DetailsSidebarViewController *essayView = [[DetailsSidebarViewController alloc]  init];
               essayView.detailItem = [jsonResults objectAtIndex:j];
        NSLog(@"%@=%d",essayView.detailItem,j);
               }
     }

当我从菜单项推送时,我创建了一个 DetailsS​​idebarViewController 作为新的视图控制器。在这个类中,我创建了一个配置视图的方法,我只是回显了结果:

- (void)configureView
{
    // Update the user interface for the detail item.

    if (self.detailItem) {

        NSLog(@" %@ ", self.detailItem);


    }
}

结果如我所愿,但我想推送到另一个视图控制器,事实上,当我点击菜单中的一个项目时什么都没有发生。

如何在情节提要中创建新的视图控制器?如果菜单没有情节提要,我如何将它们与 segues 连接起来?

事实上,我对它很蓝,请帮助!

4

1 回答 1

0

您应该在 Side Menu 视图控制器中创建 App Delegate 类的实例,然后从那里推送它。您必须参考侧边菜单视图和中心视图!将您的 App Delegate 导入 Side Menu 控制器,并在 didSelectRowAtIndexPath 中使用:

 DetailsSidebarViewController *essayView = [[DetailsSidebarViewController alloc]  init];
 essayView.detailItem = [jsonResults objectAtIndex:indexPath.row]; // note that you don't need the for loop to know what object you need
 AppDelegate* myAppDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
 [myAppDelegate.sideMenuViewController toggleSideMenu]; // the idea here is that you have to close the side menu, i.e. it must dissapear
 [myAppDelegate.centerViewController.navigationController pushViewController:essayView animated:YES];

这就是您需要的所有代码。如果可以的话,作为一条建议,请使用Mike Frederik 的 MFSideMenu而不是您正在使用的库。在我看来,它有一个更简单和更直接的实现,只需查看 README 文件,一切都解释得非常简单,而且它有你需要的代码!希望这有帮助,祝你好运!

于 2013-06-22T13:30:48.583 回答