我正在尝试创建一个带有2个视图的标签栏视图的应用。第一个包含tableView。使用第二个,您可以将元素添加到tableView。现在我希望能够在视图之间进行通信
切换标签栏控制器中的标签时是否存在segue?我怎么能拦截他们?如果没有,两个视图之间是否还有其他可能的通信方式?
答案 0 :(得分:0)
您可以使用UITabBarControllerDelegate方法拦截视图控制器之间的实际切换:
告诉代表用户在标签栏中选择了一个项目。
您可以通过访问对象库并搜索“object”来实现一个简洁的实现:
tabBarController:didSelectViewController:
将其拖到Tab栏视图控制器并通过ctrl + drag设置它的委托。
选择它:
并在检查器中设置自定义类:
当您右键单击对象时,您应该看到:
以下是CustomClass的示例:
class CustomClass : NSObject, UITabBarControllerDelegate
{
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController)
{
}
}
viewController参数是:
用户选择的视图控制器。在iOS v3.0及更高版本中,这可能与已选择的视图控制器相同。
这意味着您需要检查它是哪个VC。
答案 1 :(得分:0)
我自己想出了一个解决方案:
-keep public class com.mypackage.MyClass$MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass$MyJavaScriptInterface
-keepclassmembers class com.mypackage.MyClass$MyJavaScriptInterface {
<methods>;
}
-keepattributes JavascriptInterface