如何将视图元素的func()值传递给另一个Controller

罗密克罗密克罗密克

首先我从我做了什么开始,最后我会描述问题,这样会更清楚。一般来说,在 Android Studio 之后,在 Xcode 中处理视图元素仍然是一项任务。我明白一个好的程序员不会写两次相同的代码,以至于每次在不同的Controller中都没有描述每次的视图元素——所以我在主Controller中写了这个函数

class func designForButton (button: UIButton){
    button.layer.masksToBounds = true
    button.layer.cornerRadius = 8
}

然后你可以在不同的控制器中访问它

class RegisterViewController: UIViewController {

@IBOutlet weak var buttonBack: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    ViewController.designForButton(button: buttonBack)

}

现在,还不清楚。我加载了框架以使用 Toast。我在主控制器中描述了它的值

func designForToast(message: String){
    let style = CSToastStyle.init(defaultStyle: {
    }())
    _ = style?.backgroundColor = UIColor.gray
    _ = style?.titleColor = UIColor.cyan
    _ = style?.messageColor = UIColor.darkGray
    self.view.makeToast(message, duration: 2, position: self.bottomLayoutGuide, title: "title", image: UIImage (named: "logo.jpg"), style: style ) { (success: Bool) in
    }
}

但问题是,在这种情况下,我可以在同一个控制器中专门针对它

_=self.designForToast(message: "Its a Toast")

一旦我想做func ()- 就像class func ()在另一个控制器中工作一样,Xcode 开始强调这是不可能的,并且由于我的经验不足,我无法自己修复它。

在此处输入图片说明

扫地机

我建议您viewController在方法中添加一个参数,使其看起来像这样:

static func showToast(message: String, on viewController: UIViewController){ // I also renamed the method as well
    let style = CSToastStyle.init(defaultStyle: {
    }())
    _ = style?.backgroundColor = UIColor.gray
    _ = style?.titleColor = UIColor.cyan
    _ = style?.messageColor = UIColor.darkGray
    viewController.view.makeToast(message, duration: 2, position: viewController.bottomLayoutGuide, title: "title", image: UIImage (named: "logo.jpg"), style: style ) { (success: Bool) in
    }
}

我还建议您将这些“辅助函数”放在指定的类中,例如StyleHelper或类似的东西。

然后你可以在视图控制器中像这样使用它:

StyleHelper.showToast(message: "Hello", on: self)

或者更好的是,将其作为扩展方法!

extension UIViewController {
    func showMyToast(message: String){
        let style = CSToastStyle.init(defaultStyle: {
        }())
        _ = style?.backgroundColor = UIColor.gray
        _ = style?.titleColor = UIColor.cyan
        _ = style?.messageColor = UIColor.darkGray
        self.view.makeToast(message, duration: 2, position: self.bottomLayoutGuide, title: "title", image: UIImage (named: "logo.jpg"), style: style ) { (success: Bool) in
        }
    }
}

然后你可以在视图控制器中像这样使用它:

self.showMyToast(message: "Hello")

边注:

对于符合UIAppearance协议的视图,您可以访问该appearance()属性以全局更改其样式。例如,您可以在didFinishLaunchingWithOptions

UIButton.appearance().tintColor = .red

UIButton你创造的每一个都会是红色的。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将ID传递给另一个视图的默认值

来自分类Dev

如何将一个数组的元素传递给另一个?

来自分类Dev

将值传递给另一个视图

来自分类Dev

如何将一个函数的值传递给另一个函数?

来自分类Dev

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

来自分类Dev

如何将触摸事件传递给tableview下的另一个视图?

来自分类Dev

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

来自分类Dev

如何将单个ArrayList <CustomObj>元素传递给另一个Activity

来自分类Dev

如何将元素传递给另一个组件(最简单的方法)?

来自分类Dev

如何将熊猫系列元素传递给另一个数据框

来自分类Dev

如何将特定元素从数组传递到另一个视图或函数?迅速

来自分类Dev

如何将值从代表快速传递给另一个?

来自分类Dev

如何将ItemTemplate的值传递给另一个页面?

来自分类Dev

如何将ajax响应值传递给另一个页面?

来自分类Dev

如何将返回的值传递给另一个函数

来自分类Dev

如何将 JSON 值传递给另一个类

来自分类Dev

如何将另一个值传递给表单验证方法?

来自分类Dev

如何将值从一个选项卡栏视图项目传递给另一个?

来自分类Dev

如何将一个PostgreSQL查询的返回值传递给另一个PostgreSQL查询?

来自分类Dev

如何将值传递给对象表从一个表到另一个?

来自分类Dev

如何将一个PostgreSQL查询的返回值传递给另一个PostgreSQL查询?

来自分类Dev

如何将一个选择的结果传递给另一个选择?

来自分类Dev

如何将一个表单的 $id 传递给另一个表单

来自分类Dev

SwiftUI-如何将Date()作为字符串传递给另一个视图?

来自分类Dev

SwiftUI:如何将一个视图作为参数传递给另一个视图以获取底表?

来自分类Dev

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

来自分类Dev

如何将模板实例传递给另一个模板的另一个实例?

来自分类Dev

如何将多个选定的Datagrid值传递给asp.net中的另一个页面?

来自分类Dev

如何将字符串值传递给Java中的另一个类

Related 相关文章

  1. 1

    如何将ID传递给另一个视图的默认值

  2. 2

    如何将一个数组的元素传递给另一个?

  3. 3

    将值传递给另一个视图

  4. 4

    如何将一个函数的值传递给另一个函数?

  5. 5

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

  6. 6

    如何将触摸事件传递给tableview下的另一个视图?

  7. 7

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

  8. 8

    如何将单个ArrayList <CustomObj>元素传递给另一个Activity

  9. 9

    如何将元素传递给另一个组件(最简单的方法)?

  10. 10

    如何将熊猫系列元素传递给另一个数据框

  11. 11

    如何将特定元素从数组传递到另一个视图或函数?迅速

  12. 12

    如何将值从代表快速传递给另一个?

  13. 13

    如何将ItemTemplate的值传递给另一个页面?

  14. 14

    如何将ajax响应值传递给另一个页面?

  15. 15

    如何将返回的值传递给另一个函数

  16. 16

    如何将 JSON 值传递给另一个类

  17. 17

    如何将另一个值传递给表单验证方法?

  18. 18

    如何将值从一个选项卡栏视图项目传递给另一个?

  19. 19

    如何将一个PostgreSQL查询的返回值传递给另一个PostgreSQL查询?

  20. 20

    如何将值传递给对象表从一个表到另一个?

  21. 21

    如何将一个PostgreSQL查询的返回值传递给另一个PostgreSQL查询?

  22. 22

    如何将一个选择的结果传递给另一个选择?

  23. 23

    如何将一个表单的 $id 传递给另一个表单

  24. 24

    SwiftUI-如何将Date()作为字符串传递给另一个视图?

  25. 25

    SwiftUI:如何将一个视图作为参数传递给另一个视图以获取底表?

  26. 26

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

  27. 27

    如何将模板实例传递给另一个模板的另一个实例?

  28. 28

    如何将多个选定的Datagrid值传递给asp.net中的另一个页面?

  29. 29

    如何将字符串值传递给Java中的另一个类

热门标签

归档