【发布时间】:2017-12-28 23:05:52
【问题描述】:
我是新手,我试图通过管理 3 个 viewController 并在 3 个控制器中使用这些变量的 pageViewController 为 viewController 传递一些变量,有人可以帮助我吗?
这是我在 swift 上的代码...
我用这个发送我的变量:
public var lenguaje = ""
public var username = ""
public var indice = ""
public var password = ""
if segue.identifier == "loginPage" {
let destino = segue.destination as! RootPageViewController
destino.lenguaje=lenguaje
destino.username = self.txtUsuario.text!
destino.indice = indice
destino.password = self.txtPassword.text!
当我这样做时,调用 Web 服务的视图控制器需要其中两个变量,例如参数...所以当视图控制器出现时,它不起作用...
这是我的 RootPageViewController 类
class RootPageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
public var lenguaje = ""
public var username = ""
public var indice = ""
public var password = ""
lazy var viewControllerList: [UIViewController] = {
let sb = UIStoryboard(name: "Main" , bundle: nil)
let vc1 = sb.instantiateViewController(withIdentifier: "principal1") //this is well done
let vc2 = sb.instantiateViewController(withIdentifier: "Principal2")
let vc3 = sb.instantiateViewController(withIdentifier: "Principal3")
return [vc1,vc2,vc3]
}()
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerList.index(of: viewController) else { return nil}
let previo = vcIndex - 1
guard previo >= 0 else {return nil}
guard viewControllerList.count > previo else {return nil}
return viewControllerList[previo]
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerList.index(of: viewController) else {return nil}
let next = vcIndex + 1
guard viewControllerList.count != next else {return nil}
guard viewControllerList.count > next else {return nil}
return viewControllerList[next]
}
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
if let firstViewController = viewControllerList.first{
self.setViewControllers([firstViewController], direction: .forward, animated: true, completion: nil)
}
// Do any additional setup after loading the view.
}
}
变量直接传递给这个类,我打印它们并在我进入PageViewController时显示它们,但是我如何将它们从这里传递给PageViewController的第一个viewController(principal1)以便调用webservice有效吗?
【问题讨论】:
-
@the4kman 我确实实例化了 viewController 并传递了字段,但它不起作用