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