im this in this and imは、3つのviewControllerを管理するpageViewControllerを介してviewControllerにいくつかの変数を渡そうとし、誰でも私を助けることができますか?ここPageViewControllerを介してviewControllerのデータをpageViewControllerの第2の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サービスへの呼び出しを行い、私のViewControllerは、これらのうちの2つを必要としますビューコントローラが表示されたときに、パラメータなどの変数...ので、動作しません...
これは
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.
}
}
私RootPageViewControllerクラスです
変数はこのクラスに直接渡され、私はそれらを印刷し、PageViewControllerを入力すると表示されますが、これをWebサービスへの呼び出しが動作するようにPageViewControllerの最初のviewController(principal1)にどのように渡しますか?
[View Controller間でデータを渡す]可能な複製(https://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – the4kman
@ the4kman私はviewControllerをインスタンス化してフィールドを渡しましたが、 –