2016-11-25 123 views
0

我在其中一個視圖控制器中添加了具有自定義圖像且沒有文本的UIButton。在該導航欄中也是默認按鈕返回。我使用Connection連接了UIButton:Action,Type:UIButton,Event:Touch Up Inside和Arguments:Sender。UIButton未註冊觸摸

當我點擊那個按鈕時沒有任何反應,它根本沒有註冊觸摸。 Button Back正常工作。

enter image description here

這究竟是爲什麼?如何解決它?

+0

你沒有拍照,我懷疑你沒有設置的按鈕尺寸,它可能太小 – aircraft

+0

這不是小的。大小是35x35。你可以清楚地看到它。 – user3847113

+0

你可以在你的文章中拍照嗎? – aircraft

回答

0

試試這個:

  1. 既然你將它添加到導航欄它必須是一個UIBarButtonItem。所以你連接到它的動作插座必須有一個UIBarButtonItem而不是UIButton

  2. 檢查UIBarButtonItem的插座是否連接正確。

  3. 檢查是否啓用了UIBarButtonItem的用戶交互。

+0

我無法將'UIBarButtonItem'拖放到'View Controller'中的'Navigation Bar'上。我只能將'UIBarButtonItem'拖到主導航欄。如果'Navigation Bar'有Back按鈕,我不能在'Main.storyboard'中拖拽'UIBarButtonItem'到它。 – user3847113

+0

是的,因爲UIBarButtonItem只意味着添加到酒吧而不是其他地方。但是你仍然可以將其插座拖放到視圖控制器類中。 – PGDev

0

當我點擊該按鈕沒有任何反應,這不是註冊觸摸的。

當我看到這個投訴時,有99%的時間,原因是你已經把按鈕放在它的超級視圖之外。其超視圖外的按鈕是可見的(默認情況下),但不可觸摸。 (有時候,這是因爲上海華本身從來沒有得到一個大小等大小爲零。其他時候,它是某些其他原因)

我不能告訴你了,因爲你沒有告訴任何更多(即你沒有給出這個按鈕如何進入導航欄的細節)。但我敢打賭,如果你深入挖掘,你會發現我的猜測是正確的。

+0

嗨,我只是將該按鈕拖到Main.storyboard中的導航欄並設置約束,高度和寬度。我添加了圖片,以便更好地瞭解它的外觀。 – user3847113

0

我解決它首先添加導航條到導航欄,然後將按鈕添加到導航項。

0

要添加導航欄上的按鈕,您可以添加這樣的:

let leftButton = UIBarButtonItem(title: "abc", style: .Plain, target: self, action: #selector(ViewController.buttonClicked(_:))) 
let navigationItem = UINavigationItem() 
navigationItem.titleView = UIImageView(image: UIImage(named: "image.png")) 
navigationItem.leftBarButtonItem = leftButton 

這是左鍵。你可以用同樣的方法添加右鍵。