将变量从页面视图控制器传递到另一个

Louay Baccary

我正在尝试使用 制作注册表单UIPageViewController,因此我正在尝试将变量从子视图传递到另一个视图。

这是我的页面视图控制器:

    class PageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {


var pageControl = UIPageControl()

// MARK: UIPageViewControllerDataSource

lazy var orderedViewControllers: [UIViewController] = {
    return [self.newVc(viewController: "First"),
            self.newVc(viewController: "Second"),
            self.newVc(viewController: "Third")]
}()

override func viewDidLoad() {
    super.viewDidLoad()
    self.dataSource = self
    self.delegate = self



    // This sets up the first view that will show up on our page control
    if let firstViewController = orderedViewControllers.first {
        setViewControllers([firstViewController],
                           direction: .forward,
                           animated: true,
                           completion: nil)
    }

    configurePageControl()

    // Do any additional setup after loading the view.
}

func configurePageControl() {
    // The total number of pages that are available is based on how many available colors we have.
    pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50))
    self.pageControl.numberOfPages = orderedViewControllers.count
    self.pageControl.currentPage = 0
    self.pageControl.tintColor = UIColor.black
    self.pageControl.pageIndicatorTintColor = UIColor.white
    self.pageControl.currentPageIndicatorTintColor = UIColor.black
    self.view.addSubview(pageControl)
}

func newVc(viewController: String) -> UIViewController {
    return UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: viewController)
}


// MARK: Delegate methords
func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
    let pageContentViewController = pageViewController.viewControllers![0]
    self.pageControl.currentPage = orderedViewControllers.index(of: pageContentViewController)!
}

// MARK: Data source functions.
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
    guard let viewControllerIndex = orderedViewControllers.index(of: viewController) else {
        return nil
    }

    let previousIndex = viewControllerIndex - 1

    // User is on the first view controller and swiped left to loop to
    // the last view controller.
    guard previousIndex >= 0 else {
        return orderedViewControllers.last
        // Uncommment the line below, remove the line above if you don't want the page control to loop.
        // return nil
    }

    guard orderedViewControllers.count > previousIndex else {
        return nil
    }

    return orderedViewControllers[previousIndex]
}

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
    guard let viewControllerIndex = orderedViewControllers.index(of: viewController) else {
        return nil
    }

    let nextIndex = viewControllerIndex + 1
    let orderedViewControllersCount = orderedViewControllers.count

    // User is on the last view controller and swiped right to loop to
    // the first view controller.
    guard orderedViewControllersCount != nextIndex else {
        return orderedViewControllers.first
        // Uncommment the line below, remove the line above if you don't want the page control to loop.
        // return nil
    }

    guard orderedViewControllersCount > nextIndex else {
        return nil
    }

    return orderedViewControllers[nextIndex]

这是我的注册控制器

class RegisterViewController: UIViewController {
var username = ""
var email  = ""
var password = ""
var money = ""
var usn  = ""
@IBOutlet weak var textUsername: UITextField!
@IBOutlet weak var textEmail: UITextField!
@IBOutlet weak var textPassword: UITextField!
@IBOutlet weak var textMoney: UITextField!
@IBOutlet weak var labelUsername: UILabel!


@IBAction func btnValidate(_ sender: Any) {
    username = textUsername.text!
    usn = username
    email = textEmail.text!
    password = textPassword.text!
    print (username)
 //   labelUsername.text = username
  //  API.register(username: username, email: email, password: password)

}

@IBAction func btnSaveMoney(_ sender: Any) {
    money = String(textMoney.text!)
    print(money)
    print(username)

}
@IBAction func btnBegin(_ sender: Any) {
//   API.setMoney(money: money, username: username)
//   print(textMoney.text!)
    print("your name"+usn)
}
override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
}


/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    // Get the new view controller using segue.destination.
    // Pass the selected object to the new view controller.
}
*/

我的主要目标是将用户名从第一个孩子传递给第二个孩子,以便我可以使用它来使用网络服务这些是我的故事板和我的注册表单

故事板

我试图在第一页上获取用户名、密码和电子邮件,然后将用户名传递给下一个子视图,以便我可以将金额发送到数据库

朱利安·西尔维斯特里

您需要使用以下代码

   override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "yourSegueIdentiferHere" {
              if let sendData = segue.destination as? destinationVC
            //All the data you want to send to viewController
            }
        }

    }

这个例子是为多个 segue 标识符设置的。如果您有多个标识符,只需继续 if 语句


编辑:如果你不想使用 segues ......也许这对你有用?

override func viewDidLoad() {
    super.viewDidLoad()
    self.delegate=self
    self.dataSource=self
    let childViewController=storyboard?.instantiateViewController(withIdentifier: "some identifier of view") as! ChildViewController
    if let variable = dataToPass {
        print(variable)
    childViewController.variable = dataToPass
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将变量的值从控制器传递到另一个控制器

来自分类Dev

将变量从控制器传递到Symfony中的另一个变量?

来自分类Dev

iOS-将数据传递到另一个视图控制器

来自分类Dev

将数据传递到导航控制器中的另一个视图控制器

来自分类Dev

如何将数据从一个视图控制器传递到另一个视图控制器,并且在视图控制器之间有一个显示视图控制器

来自分类Dev

将NSManagedObject从一个视图控制器传递到另一个

来自分类Dev

Rails-将参数从一个视图传递到另一个控制器

来自分类Dev

将“用户”对象从一个视图控制器传递到另一个

来自分类Dev

如何将数据从一个视图控制器传递到另一个SWIFT

来自分类Dev

将NSManagedObject从一个视图控制器传递到另一个

来自分类Dev

如何将数据从一个视图控制器传递到另一个SWIFT

来自分类Dev

将“用户”对象从一个视图控制器传递到另一个

来自分类Dev

使用Firebase将图像从一个视图控制器传递到另一个(swift)

来自分类Dev

如何将数据从一个视图控制器传递到另一个?

来自分类Dev

如何将 NSMutableDictionary 从一个视图控制器传递到另一个视图控制器?

来自分类Dev

将变量从一个控制器传递到另一个 Laravel 5.4

来自分类Dev

将模型从一个控制器传递到另一个

来自分类Dev

使用link_to将数据从视图传递到另一个控制器-Ruby on Rails

来自分类Dev

准备segue时无法将数据传递到另一个视图控制器

来自分类Dev

将 JSON 数据从 HTTP 请求传递到 Swift 3 中的另一个视图控制器

来自分类Dev

直接从 ViewModel 将另一个类(文件)值从视图传递到控制器

来自分类Dev

无法将经度和纬度值从视图控制器传递到另一个视图控制器

来自分类Dev

Ruby on Rails:如何使用不同的控制器将一个视图/页面链接/路由到另一个视图/页面

来自分类Dev

将参数传递给另一个视图控制器时发生异常

来自分类Dev

如何将数组快速传递给另一个视图控制器?

来自分类Dev

将Stepper值传递给另一个视图控制器

来自分类Dev

将NSMutableArray传递给另一个视图控制器

来自分类Dev

Phalcon PHP将参数传递给属于另一个控制器的视图

来自分类Dev

如何将数组快速传递给另一个视图控制器?

Related 相关文章

  1. 1

    将变量的值从控制器传递到另一个控制器

  2. 2

    将变量从控制器传递到Symfony中的另一个变量?

  3. 3

    iOS-将数据传递到另一个视图控制器

  4. 4

    将数据传递到导航控制器中的另一个视图控制器

  5. 5

    如何将数据从一个视图控制器传递到另一个视图控制器,并且在视图控制器之间有一个显示视图控制器

  6. 6

    将NSManagedObject从一个视图控制器传递到另一个

  7. 7

    Rails-将参数从一个视图传递到另一个控制器

  8. 8

    将“用户”对象从一个视图控制器传递到另一个

  9. 9

    如何将数据从一个视图控制器传递到另一个SWIFT

  10. 10

    将NSManagedObject从一个视图控制器传递到另一个

  11. 11

    如何将数据从一个视图控制器传递到另一个SWIFT

  12. 12

    将“用户”对象从一个视图控制器传递到另一个

  13. 13

    使用Firebase将图像从一个视图控制器传递到另一个(swift)

  14. 14

    如何将数据从一个视图控制器传递到另一个?

  15. 15

    如何将 NSMutableDictionary 从一个视图控制器传递到另一个视图控制器?

  16. 16

    将变量从一个控制器传递到另一个 Laravel 5.4

  17. 17

    将模型从一个控制器传递到另一个

  18. 18

    使用link_to将数据从视图传递到另一个控制器-Ruby on Rails

  19. 19

    准备segue时无法将数据传递到另一个视图控制器

  20. 20

    将 JSON 数据从 HTTP 请求传递到 Swift 3 中的另一个视图控制器

  21. 21

    直接从 ViewModel 将另一个类(文件)值从视图传递到控制器

  22. 22

    无法将经度和纬度值从视图控制器传递到另一个视图控制器

  23. 23

    Ruby on Rails:如何使用不同的控制器将一个视图/页面链接/路由到另一个视图/页面

  24. 24

    将参数传递给另一个视图控制器时发生异常

  25. 25

    如何将数组快速传递给另一个视图控制器?

  26. 26

    将Stepper值传递给另一个视图控制器

  27. 27

    将NSMutableArray传递给另一个视图控制器

  28. 28

    Phalcon PHP将参数传递给属于另一个控制器的视图

  29. 29

    如何将数组快速传递给另一个视图控制器?

热门标签

归档