gpt4 book ai didi

ios - 从另一个类访问 UI 操作

转载 作者:行者123 更新时间:2023-11-30 11:43:20 25 4
gpt4 key购买 nike

我的应用程序中有一个“在 Facebook 上共享”按钮,位于 3 个不同的 View Controller 处。所以我写了一个名为“ShareCentral”的类,我想在这个类中进行所有共享操作。但为了显示共享对话框,我需要将 uiviewcontroller 传递给我的 ShareCentral 类。我确实喜欢这样:

class ShareCentral {



var UIVC: UIViewController


init(vc:UIViewController) {
self.UIVC = vc
}

func shareOnFacebook() {
var content = LinkShareContent(url: URL(string:userProfileLink)!)
do {
try ShareDialog.show(from: UIVC, content: content)
}catch (let error) {
print(error)
}
}
}

这是我的 View Controller :

class SettingsViewController: UIViewController {

let shareCentral = ShareCentral(vc: self)


@IBAction func shareButtonClicked(_ sender: AnyObject) {
self.shareCentral.shareOnFacebook()
}
}

我收到以下编译器错误:

SettingsViewController.swift:40:41: Cannot convert value of type '(SettingsViewController) -> () -> (SettingsViewController)' to expected argument type 'UIViewController'

我知道如果我将 UIVC 的类型更改为“SettingsViewController”,问题就会消失。但正如我之前所说,我将在三个不同的 View Controller 中使用此方法。

如何解决这个问题?

最佳答案

试试这个:

class ShareCentral {
unowned var UIVC: UIViewController

init(vc:UIViewController) {
self.UIVC = vc
}

func shareOnFacebook() {
var content = LinkShareContent(url: URL(string:userProfileLink)!)
do {
try ShareDialog.show(from: UIVC, content: content)
} catch (let error) {
print(error)
}
}
}

class SettingsViewController: UIViewController {
var shareVC: ShareVC!

override func viewDidLoad() {
super.viewDidLoad()

self.shareVC = ShareVC(vc: self)
}

@IBAction func shareButtonClicked(_ sender: AnyObject) {
self.shareCentral.shareOnFacebook()
}
}

关于ios - 从另一个类访问 UI 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49097475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com