[英]When I press register button my app has crashed but data insert successfully in database
[英]My app was crashed when i touched on any button
如何在Utility Class中使用選擇器並定義? 我的代碼創建了一些錯誤。 請告訴我如何解決此錯誤?
錯誤:當我觸摸任何按鈕時,我的應用程序崩潰了。
class BarButton{
static func items(navigationItem: UINavigationItem) {
//Hide Back Button
navigationItem.hidesBackButton = true
//Add Label to Left of NavigationBar
let leftLabel = UIBarButtonItem(title: "", style: .plain, target: self, action: nil)
leftLabel.tintColor = UIColor.init(red: 30/255, green: 104/255, blue: 140/255, alpha: 1)
navigationItem.setLeftBarButton(leftLabel, animated: false)
//List Button
let btnList = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 22))
btnList.setImage(UIImage(named:"list-icn"), for: .normal)
btnList.addTarget(self, action: #selector(listBtn), for: .touchUpInside)
let rightBarBtn1 = UIBarButtonItem.init(customView: btnList)
rightBarBtn1.tintColor = UIColor(red: 30/255, green: 104/255, blue: 140/255, alpha: 1)
//Notification Button
let btnList2 = UIButton(frame: CGRect(x: 0, y: 0, width: 22, height: 22))
btnList2.setImage(UIImage(named:"notification-icn"), for: .normal)
btnList2.addTarget(self, action: #selector(notificationBtn), for: .touchUpInside)
let rightBarBtn2 = UIBarButtonItem.init(customView: btnList2)
rightBarBtn2.tintColor = UIColor(red: 30/255, green: 104/255, blue: 140/255, alpha: 1)
navigationItem.setRightBarButtonItems([rightBarBtn1, rightBarBtn2], animated: true)
}
@objc func listBtn() {
print("List Btn")
}
@objc func notificationBtn() {
print("Notification Btn")
}
}
試試看,看看:
let btnList = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 22))
btnList.setImage(UIImage(named:"list-icn"), for: .normal)
// Update selector
btnList.addTarget(self, action: #selector(BarButton.listBtn(sender:)), for: .touchUpInside)
let rightBarBtn1 = UIBarButtonItem.init(customView: btnList)
rightBarBtn1.tintColor = UIColor(red: 30/255, green: 104/255, blue: 140/255, alpha: 1)
//Notification Button
let btnList2 = UIButton(frame: CGRect(x: 0, y: 0, width: 22, height: 22))
btnList2.setImage(UIImage(named:"notification-icn"), for: .normal)
// Update selector
btnList2.addTarget(self, action: #selector(BarButton.notificationBtn(sender:)), for: .touchUpInside)
let rightBarBtn2 = UIBarButtonItem.init(customView: btnList2)
rightBarBtn2.tintColor = UIColor(red: 30/255, green: 104/255, blue: 140/255, alpha: 1)
navigationItem.setRightBarButtonItems([rightBarBtn1, rightBarBtn2], animated: true)
// Try using static
@objc static func listBtn(sender: Any)
{
print("List Btn")
}
// Try using static
@objc static func notificationBtn(sender: Any)
{
print("Notification Btn")
}
您的listBtn
和notificationBtn
方法是實例方法,但是您嘗試在類上調用它們,而不是類實例 - 您的items
方法是static
,因此它內部的self
是AnyObject.Type
類型。
要修復它, listBtn
和notificationBtn
方法listBtn
靜態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.