我正在制作一个展示facebook / path左手导航的教程
一切都按预期工作,但我想在导航表中添加一个关闭导航按钮,但我似乎无法触发相同的方法或从导航类访问故事板场景
这是我尝试执行任务的一种方式的示例
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString * storyboardName = @"MainStoryboard_iPhone";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UINavigationController * vc = [storyboard instantiateViewControllerWithIdentifier:@"main"];
[UIView animateWithDuration:0.2f
delay:0.0
options:UIViewAnimationCurveLinear
animations:^{
CGAffineTransform trans = CGAffineTransformMakeTranslation(200.0, 0.0);
vc.view.transform= trans;
}
completion:^(BOOL finished){
}
];
}
'main'是我想要动画的storyboardID,但是在'vc.navigationController'上执行NSLog时,我得到一个NULL返回 - 虽然日志'vc'返回与正确的storyboard场景关联的类名
任何帮助都会受到赞赏我只是无法理解它!
-edit 我以为我能够在我的变换中编辑调用superview的'主视图' self.view.superview.transform = trans
然而,这会激活两个视图控制器,并且渲染“主视图”无用,因为现在此视图中没有任何轻击手势响应......
还有什么想法?
答案 0 :(得分:0)
好吧,经过大量的努力,我设法得到了一些工作
我需要联系appdelegate才能访问上下文中的另一个viewcontroller
我的代码现在是
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
AppDelegate* appDel = (AppDelegate*)[[UIApplication sharedApplication] delegate];
MainView *mv = (MainView *)appDelegate.window.rootViewController;
[UIView animateWithDuration:0.2f
delay:0.0
options:UIViewAnimationCurveLinear
animations:^{
CGAffineTransform trans = CGAffineTransformMakeTranslation(-0.0, 0.0);
mv.view.transform= trans;
}
completion:^(BOOL finished){
}
];
}