解决方案 »

  1.   

    为什么不能push,你没说啊
    [self.navigationController pushViewController: animated:]用这个方法,如果不行也应该有个错误提示吧dock是你自定义,是view的子类吗?
    只要是view的子类隐藏都很简单
    dock.hidden=YES;
    dock.alpha=0;
    设置dock.frame到屏幕外都可以实现隐藏横屏我没做过,从来只做竖屏
      

  2.   

    [self.navigationController pushViewController: animated:]
    这个是不能的,因为我打印了,self.navigationController的值是nil
    所以根本不能这样跳转
      

  3.   


    [self.navigationController pushViewController: animated:]
    这个是不能的,因为我打印了,self.navigationController的值是nil
    所以根本不能这样跳转
      

  4.   

    还是没弄明白,不能push的话,你说的modal是什么意思?
    实在不行你就直接addsubview把要弹出的界面加载进来就行了
      

  5.   


    我用[[UIApplication sharedApplication] keyWindow].rootViewController = dwc;
    可以跳转,但是这样回不来了
      

  6.   

    [self.view addsubview:dec.view] 
    这样不行吗?
      

  7.   

    1.只有在导航控制器栈中的控制器才可以通过
    [self.navigationController pushViewController: animated:]
    这个方法来导航视图。显然你的不是,你的viewcontroller.view是作为subview添加到当前页面上的。所以在你执行push操作的时候不会出现你想要的效果。
    解决方法 :
    在被包含的viewcontroller中得到它的包含控制器
    UIViewController *superVC=(UIViewController *)[[self.view superview] nextResponder];
    [superVC.navigationController pushViewController: animated:];superVC即为包含你所指的嵌套viewcontroller 的super.这个super是在导航控制器栈中的,所以在使用push导航视图的时候就没有这个问题了。2.如果dock只是作用在当前视图上的,在视图被导航出去后,就不会显示了。如果是作用在各个控制器上的,你可以通过更改它的位置让它不被可见来实现你想要的效果。3.横竖屏的动作你可以在控制器的viewLayoutSubview方法中来截获,并处理相应的操作。