URLNavigator icon indicating copy to clipboard operation
URLNavigator copied to clipboard

get value back

Open HUANGLIWEN opened this issue 5 years ago • 2 comments

VC A->VC B,Now i want get B page value in A Page how should i do?

HUANGLIWEN avatar Sep 24 '19 02:09 HUANGLIWEN

You can use context:

struct MyContext {
  let completionHandler: (MyData) -> Void
}

navigator.register("myapp://") { url, values, context in
  guard let context = context as? MyContext else { return nil }
  return ViewControllerB(completionHandler: context.completionHandler)
}

// in ViewControllerA.swift
let context = MyContext(completionHandler: { ... })
navigator.push(viewControllerB, context: context)

devxoul avatar Sep 28 '19 12:09 devxoul

You can use context:

struct MyContext {
  let completionHandler: (MyData) -> Void
}

navigator.register("myapp://") { url, values, context in
  guard let context = context as? MyContext else { return nil }
  return ViewControllerB(completionHandler: context.completionHandler)
}

// in ViewControllerA.swift
let context = MyContext(completionHandler: { ... })
navigator.push(viewControllerB, context: context)

push方法有返回viewcontroller,我返回了一个基类,基类内有个公共的闭包,在闭包内实现回调也是可行的吧? 因为我push 的时候把context 仅作为Dictionary 传参处理的,感觉比在url 上传参清晰

FunnyerFeng avatar Apr 21 '20 11:04 FunnyerFeng