我正在使用https://github.com/John-Lluch/SWRevealViewController来开发我的应用。在构建应用程序时,我有两个问题。
在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.除了segue功能改变视图,我的应用程序支持手动更改视图,假设我按下vc1上的某个按钮,应用程序将推送vc2。通过这种方式,SidebarViewController.m方法,
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
不会再次调用,因此之前的设置不适用于新的vc2。我试过[tableview reload]
,但仍然无法工作。
感谢大家的大力帮助。
答案 0 :(得分:0)
我不知道这是否会对您有所帮助,但如果语言设置发生变化(我的本地化位于应用内),我会使用此代码本地化我的滑动菜单:
在SWRevealViewController.m
内。
- (void (^)(void))_rearViewDeploymentForNewFrontViewPosition:(FrontViewPosition)newPosition
...
if ([_rearViewController isKindOfClass:([tvcMenu class])])
{
[((tvcMenu*)_rearViewController).tvMenu reloadData];
}
return completion;