JSPatch icon indicating copy to clipboard operation
JSPatch copied to clipboard

self.tabBarController().setSelectedViewController(viewcontroller) 出现Bug

Open subo-romens opened this issue 9 years ago • 8 comments

var tab_BarController= self.tabBarController(); var ViewControllers=tab_BarController.viewControllers(); var carViewControllers=ViewControllers[0]; self.tabBarController().setSelectedViewController(carViewControllers); 执行此方法是报错下图是错误信息, 2016-12-27 10 49 38 跟踪时发现ViewControllers 没有类型 是否正常 2016-12-27 10 53 18

subo-romens avatar Dec 27 '16 02:12 subo-romens

var carViewControllers=ViewControllers[0]; 要改成 var carViewControllers=ViewControllers.objectAtIndex(0)

bang590 avatar Dec 27 '16 03:12 bang590

Hello bang590
我一开始使用的就是ViewControllers.objectAtIndex(0) 但是提示我objectAtIndex无效 2016-12-27 2 12 53 以下是调试代码 var tab_BarController= self.__c("tabBarController")(); var ViewControllers=tab_BarController.__c("viewControllers")(); var carViewControllers=ViewControllers.__c("objectAtIndex")(0) self.__c("tabBarController")().__c("setSelectedViewController")(carViewControllers); Xcode返回错误 msg: [object Object],[object Object],[object Object],[object Object],[object Object].objectAtIndex is undefined,

subo-romens avatar Dec 27 '16 06:12 subo-romens

我用的是 pod 'JSPatchPlatform' pod 'JSPatch/Extensions' pod 'JSPatch/JPCFunction' JSPatch版本是 1.1.2 最新版

subo-romens avatar Dec 27 '16 06:12 subo-romens

你是替换了 tabBarController 代码?发完整代码上来吧

bang590 avatar Dec 28 '16 03:12 bang590

autoConvertOCType(1); require('OrderListViewController,UITabBarController') defineClass('OrderListViewController',{ buyAgain:function(sender){ var tab_BarController= self.tabBarController(); var ViewControllers=tab_BarController.viewControllers(); var carViewControllers=ViewControllers.objectAtIndex(0) self.tabBarController().setSelectedViewController(carViewControllers); }, }) 这个是所有代码 OrderListViewController 是UITabBarController中其中一个ViewController buyAgain是OrderListViewController的UIButton 点击事件 我的业务逻辑就是OrderListViewController点击按钮能跳到UITabBarController的第一页
2016-12-28 2 44 33 这是调试出现 2016-12-28 2 44 56

subo-romens avatar Dec 28 '16 06:12 subo-romens

喔你用了autoConvertOCType(1),那不能用objectAtIndex,之前用[0]是对的,断点去setSelectedViewController看看传进去什么

bang590 avatar Dec 29 '16 08:12 bang590

setSelectedViewController 传进去的是 2016-12-29 11 23 56 这个不知道是什么类型, 正常的话应该是ViewController类型

var ViewControllers=tab_BarController.viewControllers(); var carViewControllers=ViewControllers.objectAtIndex(0) self.tabBarController().setSelectedViewController(carViewControllers);

subo-romens avatar Dec 29 '16 15:12 subo-romens

在OC断点看,在JS看到的所有OC对象都是这样的。

bang590 avatar Dec 30 '16 11:12 bang590