Ios 如何在swift3中从UIView传递数据UIViewContoller
如何从uiview传递数据uiviewController 我正在使用函数,但它不起作用 协议名为startcalldelegate,函数名为startcall UIView代码Ios 如何在swift3中从UIView传递数据UIViewContoller,ios,swift,Ios,Swift,如何从uiview传递数据uiviewController 我正在使用函数,但它不起作用 协议名为startcalldelegate,函数名为startcall UIView代码 protocol StartCallDelegate: class { func startCall(localNickname :String, remoteNickname :String)} class CardView: UIView { let managedObjectContext = (UIAppl
protocol StartCallDelegate: class {
func startCall(localNickname :String, remoteNickname :String)}
class CardView: UIView {
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
weak var delegate: CardViewDelegate?
weak var socketdelegate: StartCallDelegate?
@IBOutlet weak var UserPhoto: UIImageView!
@IBOutlet weak var UserNickName: UILabel!
@IBOutlet weak var UserAge: UILabel!
@IBOutlet weak var UserPeople: UILabel!
var localNickname: String = ""
var remoteNickname: String = ""
@IBAction func SendMessage(_ sender: Any) {
print("SendMessage")
//print(localNickName)
//print(UserNickName.text!)
}
@IBAction func SendVideoCall(_ sender: Any) {
print("SendVideoCall")
let entityDescription = NSEntityDescription.entity(forEntityName: "Profile", in: managedObjectContext)
let request = NSFetchRequest<NSFetchRequestResult>()
request.entity = entityDescription
do {
let objects = try managedObjectContext.fetch(request)
if objects.count > 0 {
let match = objects[0] as! NSManagedObject
localNickname = match.value(forKey: "nick") as! String
} else {
print("Nothing founded")
}
} catch {
print("error")
}
remoteNickname = UserNickName.text!
socketdelegate?.startCall(localNickname: localNickname, remoteNickname: remoteNickname)
delegate?.VideoChatSegue()
}
startCall func不工作您需要在viewcontroller的ViewDidLoad中定义委托
let objOardView = CardView() // this is only test purpose
objOardView.socketdelegate = self
您在何处创建此
卡片视图的对象?@leeyuno bcoz我猜您的委托为零。@NiravD OtherViewController@leeyuno哪个控制器?在您的问题中添加该控制器以及该控制器与此ViewController的关系?在ViewController中添加此代码,但不起作用。。T^T您是否在控制器中声明了CardView?是的,在ViewController中声明了CardView您是否可以将其添加到注释中?
let objOardView = CardView() // this is only test purpose
objOardView.socketdelegate = self