iOS 控制器的跳转、页面四个方向的跳转

指定滑动方向的跳转

CATransition *transition = [CATransition animation];
    transition.duration = 0.3f;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
    transition.type = kCATransitionPush;
    transition.subtype = kCATransitionFromTop;
    [self.navigationController.view.layer addAnimation:transition forKey:nil];
    
    LiveViewController *createLiveView = [[LiveViewController alloc] init];
    [self.navigationController pushViewController:createLiveView animated:NO];

 

 

 

控制器禁止右滑返回

#import "UINavigationController+FDFullscreenPopGesture.h"

控制器禁止系统的右滑返回 self.fd_interactivePopDisabled=YES;

1、任意跳转控制器

//比如:在后台收到消息指令时,要让应用跳转到某个控制器,  x 代表第几个根视图(首页,消息,我的 。    分别是:0  1  2 ),任意视图跳转哦

self.tabBarController.selectedViewController = self.tabBarController.childViewControllers[X];

[self.navigationController popToRootViewControllerAnimated:YES];

 

2、获取所处到控制器,  并且跳到指定到Controller 或者删除指定到Controller 

 

AppDelegate * app =[UIApplication sharedApplication].delegate;
 

  //获取当前视图  (详细获取  见:下面?)
  
 UIViewController * viewNow = [self topViewControllerWithRootViewController:[UIApplication sharedApplication].keyWindow.rootViewController];
                    
//获取视图组
NSMutableArray *marr = [[NSMutableArray alloc]initWithArray:viewNow.navigationController.viewControllers];
                     
 

//1   这个时要显示到Controller
                   
 UIViewController * view0 =marr[0];
                    
[marr setArray:@[view0]];
                 
 viewNow.navigationController.viewControllers = marr;
 

 
//2   这个时要删除指定到Controller
                
 for (UIViewController *vc in marr)
                 {
                  if ([vc isKindOfClass:[theVCYouWantToRemove class]])
                  { [marr removeObject:vc]; break; }
               }
                   
                 self.navigationController.viewControllers = marr;
 

 
 
//获取当前到控制器//////////////////////
-(UIViewController*)topViewControllerWithRootViewController:(UIViewController*)rootViewController
{
    if ([rootViewController isKindOfClass:[UITabBarController class]]) {
        UITabBarController *tabBarController = (UITabBarController *)rootViewController;
        return [self topViewControllerWithRootViewController:tabBarController.selectedViewController];
    } else if ([rootViewController isKindOfClass:[UINavigationController class]]) {
        UINavigationController* navigationController = (UINavigationController*)rootViewController;
        return [self topViewControllerWithRootViewController:navigationController.visibleViewController];
    } else if (rootViewController.presentedViewController) {
        UIViewController* presentedViewController = rootViewController.presentedViewController;
        return [self topViewControllerWithRootViewController: presentedViewController];
    } else {
        return rootViewController;
    }
}

 

转载于:https://www.cnblogs.com/xujiahui/p/6763681.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值