我是Swift的新手,我想知道如何将数据从ViewController传递到未通过Segue连接的ViewController。我已经花了2个小时来做这件事,但仍然想不出办法。
编辑:我很困惑的问题是如何取出所有堆叠的ViewController期望根ViewController,同时能够将数据从ViewController3中传递回第一个ViewController 'navigationController?.popToRootViewController(动画:false)'
def dict_invert(d):
'''
d: dict
Returns an inverted dictionary according to the instructions above
'''
myDict = {}
for key in d.keys():
if d[key] in myDict:
myDict[d[key]].append(key)
else:
myDict[d[key]] = [key]
for val in myDict.values():
val.sort()
return myDict
print(dict_invert({8: 6, 2: 6, 4: 6, 6: 6}))
答案 0 :(得分:0)
我找到了将ViewController3数据传输到ViewController的方法!
var vc3 = ViewController3()
然后在加载时将ViewController用作vc3的委托。
override func viewDidLoad() {
super.viewDidLoad()
vc3.namePassBack = self
}
然后回到ViewController3,在使用委托之前添加“ vc3”。
@IBAction func buttonPressed3(_ sender: Any) {
vc3.namePassBack!.nameThatWasEntered(name: textfield3.text!)
navigationController?.popToRootViewController(animated: false)
}
答案 1 :(得分:-1)
如果您使用segue,请使用'Unwind segue'
为此,在您的“视图控制器”中编写给定代码
@IBAction func unwindToThisViewController(segue: UIStoryboardSegue) {
}
在B_viewcontroller中,在按下按钮时调用“ Unwind segue”。
注意:-在Unwind segue的帮助下,您可以将3ed vc的值发送到1se vc,就像从1st vc到2nd vc发送值一样。
有关更多信息,请访问此link