美文网首页
iOS界面路由和连续跳转的问题

iOS界面路由和连续跳转的问题

作者: 宣文艺的挨踢楠 | 来源:发表于2017-09-08 17:01 被阅读242次

1 目前的界面路由所用到的是JLRoutes,但是我们项目中用到的是已经封装并重写过的;用的时候步骤比较方便:

(1) 在对应的界面的load方法里面注册:如下

[JLRoutessn_addRoute:[NSStringstringWithFormat:@"/%@/%@",kUrPatternlType,kTwo]handler:^id(NSDictionary*parameters) {

SecondViewController*lifePayHistoryVC = [[SecondViewControlleralloc]init];

returnlifePayHistoryVC;

//里面的返回要写,而且要初始化,在这里我理解,此block里面的返回就是理由所谓的key对应的value

}];

(2) 在需要界面跳转的地方,利用封装好的方法进行跳转:如下

[RoutespushViewControllerWithRoutesUrl:[NSStringstringWithFormat:@"%@%@/%@",kScheme,kUrPatternlType,@"3"]params:@{@"color":[UIColoryellowColor]}fromNav:self.navigationControllerAnimate:YES];

//注意:对应的url格式要满足,不能乱写,虽然我现在也十分清楚,而且(1)和(2)中的留意,不能一味的照搬

方法对应的实现:

+ (id)routeURL:(NSString*)urlString parmas:(NSDictionary*)params

{

return[JLRoutessn_routeURL:[NSURLURLWithString:urlString]withParameters:params];

}

+ (void)pushViewControllerWithRoutesUrl:(NSString*_Nonnull)url params:(NSDictionary*__nullable)parmas fromNav:(UINavigationController*_Nonnull)fromNav Animate:(BOOL)animate

{

if(url ==nil||url.length==0)

return;

idobject = [selfrouteURL:urlparmas:parmas];

if([objectisKindOfClass:[UIViewControllerclass]])

{

UIViewController*vc = (UIViewController*)[RoutesrouteURL:urlparmas:parmas];

if([NSThreadcurrentThread] != [NSThreadmainThread])

{

dispatch_async(dispatch_get_main_queue(), ^{

if(vc && fromNav)

{

[fromNavpushViewController:vcanimated:animate];

}

});

}

else

{

if(vc && fromNav)

{

[fromNavpushViewController:vcanimated:animate];

}

}

}

}

2 但是 ,在我逐渐理解的过程中发现了一些问题;我今天测试在 Viewcontroller里面这样,push到第五个界面:

因为Viewcontroller是这样来的:

目前未发现什么问题;而此时我想要从第五个界面直接跳转到第二个,于是我这样写

结果方法确实走了,也push了,但是不知道到的是哪一个,反正不是第二个,因为title没有

如果push到了第二个或者其他的,那么title最起码会有,不仅如此,当我连续点击两次back时,就崩溃了

看原因因该是连续push导致的;

自己的分析:push到第五个vc时,view还没展示,就又push到另一个了,因为是在viewdidload里面push的,但是,在Viewcontroller时的viewdidload里面也push了啊,却能够push到第五个。。。这些是为什么呢,不太懂,也不知道崩溃的真正原因;欢迎知道帮助;

相关文章

  • iOS界面路由和连续跳转的问题

    1 目前的界面路由所用到的是JLRoutes,但是我们项目中用到的是已经封装并重写过的;用的时候步骤比较方便: (...

  • iOS集成ReactNative跳转、传值

    iOS跳转RN界面iOS跳转RN界面传值iOS跳转不同的RN界面(一)iOS跳转不同的RN界面(二)RN界面跳转到...

  • iOS 界面路由跳转

    将界面的跳转操作都放在一个地方统一处理不用关心当前控制器是什么,不用繁琐的引用文件,将各模块之间隔离开来接收参数的...

  • 解决vue路由跳转页面不刷新的问题

    解决vue路由跳转页面不刷新的问题 通过路由传参跳转界面,页面没有刷新解决方法:在 router-view 中加 ...

  • 课程三

    1.导航器: 路由进行跳转 界面获取到跳转传递的参数: 界面返回上一页或者跳转到指定的界面

  • Swift - 界面的跳转模式

    iOS开发中界面跳转有两种方式,上下跳转和左右跳转。 上下跳转_TO: letsecondViewControll...

  • swift 页面跳转

    iOS开发中界面跳转有两种方式,上下跳转和左右跳转。 上下跳转_TO: letsecondViewControll...

  • Swift实现IOS界面的跳转

    IOS开发中界面跳转有两种方式,上下跳转和左右跳转。 上下跳转_TO: let secondViewControl...

  • vue 路由的那些事

    关于vue路由东配置 请注意 path: '/Layout' 的写法。避免界面跳转路径和界面对应不上。

  • OpenUrl

    iOS-使用URL Schemes,进行应用之间跳转iOS - JLRoutes路由跳转官方文档JLRoutes ...

网友评论

      本文标题:iOS界面路由和连续跳转的问题

      本文链接:https://www.haomeiwen.com/subject/ykhnjxtx.html