0

我正在完成一个演示 facebook/path 左侧导航的教程

http://hsapkota.com.au/index.php/blog/ios-iphone-ipad/28-tutorial-creating-gmail-facebook-like-menu-navigation-in-ios

一切都按预期工作,但是我想在导航表中添加一个关闭导航按钮,但我似乎无法触发相同的方法或从导航类访问情节提要场景

这是我尝试执行任务的一种方式的示例

- (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' 返回与正确的故事板场景关联的类名

任何帮助将不胜感激,我只是无法理解它!

-edit 我以为我能够在我的转换 self.view.superview.transform=trans 中编辑调用 superview 的“主视图”

但是,这会为两个视图控制器设置动画,并且还会使“主视图”变得无用,因为现在没有点击手势在此视图中响应......

还有什么想法吗?

4

1 回答 1

0

好吧,经过一番折腾之后,我设法得到了一些工作

我需要联系 appdelegate 才能在上下文中访问其他视图控制器

我的代码现在是

- (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){


                 }
 ];

}

于 2013-07-25T10:03:20.050 回答