- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一段代码
@IBAction func postbutton(_ sender: UIButton) {
let ref: DatabaseReference = Database.database().reference()
let postvalue = ref.child("All Post").childByAutoId()
let postkeyvalue = postvalue.key!
postvalue.child("Post Content").setValue(postcontent.text)
postvalue.child("Post Author").setValue(currentuser)
var possstkeystring = postkeyvalue
}
我需要访问其他 View Controller 文件中的 possstkeystring。
我已经尝试在函数外部声明 possstkeystring 。当我这样做时,我的项目总是失败,因为它是空的。
我尝试过使用准备功能,但不起作用。
我尝试在类之外声明变量,但没有成功。它总是失败,因为字符串为空,并且由于它是 firebase 子字符串,因此它不能为空。
这是我试图将其插入的另一个文件代码块
self.ref.child("All Post").child(possstkeystring).child("Post Author").observe(DataEventType.value, with: { (snapshot) in
if let item = snapshot.value as? NSDictionary
{
self.authornamereference = item["Post Author"] as! String
}
请帮忙!谢谢:)
当我实际输入范围之外的变量或在静态变量中输入变量时,我收到此错误
由于未捕获的异常“InvalidPathValidation”而终止应用程序,原因:“(child:) 必须是非空字符串且不包含“.” '#' '$' '[' 或 ']''
最佳答案
您可以通过多种方式做到这一点,其中一种方法是使用NotificationCenter
使用通知中心:
首先,您需要在应用程序中的任意位置向Notification.Name 添加扩展名。喜欢
extension Notification.Name { static let mynotification = Notification.Name("mynotification") }
在另一个 View Controller viewDidLoad 方法中添加
NotificationCenter.default.addObserver(self, selector: #selector(yourMethod), name: NSNotification.Name.mynotification, object: nil)
然后在您的另一个 ViewController 中添加一个方法,该方法将在通知触发时调用
func yourMethod(){
//// do something
}
现在,在您的 Click 事件方法中,甚至在应用程序的任何位置,您可以通过发送类似通知来调用 viewController 的方法
NotificationCenter.default.post(name: NSNotification.Name.mynotification, object: nil)
另一种简单的方法,如果您从存在单击事件的同一 View Controller 启动另一个 View Controller ,那么您必须拥有该 View Controller 的引用。那么你只需调用
vc.yourMethod(params);
关于swift - 如何将变量从按钮操作函数拉到另一个 View Controller 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55683051/
我是一名优秀的程序员,十分优秀!