您的位置:首页 > 移动开发 > IOS开发

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

2017-04-25 18:33 513 查看
指定滑动方向的跳转

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];


控制器禁止右滑返回

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
span.s1 { }
span.s2 { font: 12.0px ".PingFang SC" }
#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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #008400 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; min-height: 13.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 }
span.s1 { color: #000000 }
span.s2 { color: #4f8187 }
span.s3 { }
span.s4 { color: #3e1e81 }
span.s5 { font: 11.0px Menlo; color: #000000 }
span.s6 { font: 11.0px Menlo }
span.s7 { color: #31595d }
span.s8 { color: #008400 }
span.s9 { font: 11.0px "PingFang SC"; color: #008400 }
span.s10 { color: #703daa }
span.s11 { color: #272ad8 }

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: