ECSlidingViewController - 处理回调

时间:2014-03-23 15:16:31

标签: callback handle ecslidingviewcontroller

当左菜单隐藏时,我该如何处理事件?例如: 在主屏幕上,我有一个带有物品的桌子 在左侧菜单我有一个类别列表,当我选择左侧菜单上的项目时,我指定一个全局变量的值,然后返回到主顶视图 我想要运行新查询并更新tableView项目。

谢谢!

2 个答案:

答案 0 :(得分:0)

您应该在类别列表控制器中实现以下方法

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

例如,我的LeftMenu基本上是一个UITableviewController(与ECSlidingViewController基本演示相同),我需要根据在LeftMenu中点击的行来过滤TopViewController中显示的项目,这是我如何做到的:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
//To stop TopViewController from being reset each time.
ECSlidingSegue *slidingSegue = (ECSlidingSegue *)segue;
slidingSegue.skipSettingTopViewController = YES;

//getting the dataobject associated with the selected table row
NSIndexPath *selectedIndexPath = [_tableView indexPathForSelectedRow];
MyDataObject *dataObject = [_dataArray objectAtIndex:selectedIndexPath.row];

//Digging down into the hiearchy to get to my required view
UITabBarController *tabBarController = (UITabBarController *)[[segue destinationViewController] topViewController];

UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex:0];

MyFilteredListViewController *filteredListViewController = (MyFilteredListViewController *)[navigationController topViewController];

//Calling a method on the viewcontroller
[filteredListViewController filterForDataObject:dataObject];

}

所以我不得不深入挖掘一下我特意需要的viewcontroller,因为MyFilteredListViewController在一个导航控制器里面,后者又是一个TabBarController的子节点,然后被设置为ECSlidingViewController的TopViewController。

如果它们没有以复杂的方式嵌套,那么访问viewcontrollers应该更直接:)

一旦你拥有了你需要的视图控制器,你就可以在它上面调用一个方法(就像我一样),或者你可以访问一个变量属性并设置它的值。

您必须将“ECSlidingSegue.h”导入类别列表控制器。

希望这有帮助!

答案 1 :(得分:0)

如果我理解了您想要做的事情,可以将topviewcontroller设置为滑动ECSlidingViewController

的代表

然后在topviewcontroller上,您可以实施可选的

- (id<UIViewControllerAnimatedTransitioning>)slidingViewController:(ECSlidingViewController *)slidingViewController
                               animationControllerForOperation:(ECSlidingViewControllerOperation)operation
                                             topViewController:(UIViewController *)topViewController;

topviewcontroller的动画发生之前执行任何自定义操作是一个很好的观点..如果您不想要自定义动画/过渡发生,请记住在之后返回nil你的自定义代码。