如何在使用SWRevealViewController时获取显示和重新加载菜单表的视图

时间:2014-02-11 10:55:33

标签: ios uitableview delegates slide

我正在使用https://github.com/John-Lluch/SWRevealViewController来开发我的应用。在构建应用程序时,我有两个问题。

  1. 在SidebarViewController.m中,它来自这里的教程http://www.appcoda.com/ios-programming-sidebar-navigation-menu/, 我编辑了这个方法 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    我希望通过设置cell.userInteractionEnabled属性来禁用特定视图上的特定菜单按钮,例如,当我在vc1中时,我禁用了将使用vc1的segue。通过这个意思,我想找出当前的viewcontroller的restorationIdentifier来决定选择,但我找不到任何方法来获取当前的viewController,我试过     self.revealViewController.frontViewController.presentedViewController.restorationIdentifier self.revealViewController.frontViewController.childViewControllers objectAtIndex:

    这都错了。

  2. 2.除了segue功能改变视图,我的应用程序支持手动更改视图,假设我按下vc1上的某个按钮,应用程序将推送vc2。通过这种方式,SidebarViewController.m方法,

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    

    不会再次调用,因此之前的设置不适用于新的vc2。我试过[tableview reload],但仍然无法工作。

    感谢大家的大力帮助。

1 个答案:

答案 0 :(得分:0)

我不知道这是否会对您有所帮助,但如果语言设置发生变化(我的本地化位于应用内),我会使用此代码本地化我的滑动菜单:

SWRevealViewController.m内。

    - (void (^)(void))_rearViewDeploymentForNewFrontViewPosition:(FrontViewPosition)newPosition

...

        if ([_rearViewController isKindOfClass:([tvcMenu class])])
        {
            [((tvcMenu*)_rearViewController).tvMenu reloadData];
        }

        return completion;