Do navigačného panela v jednom z mojich ovládačov zobrazenia som pridal UIButton s vlastným obrázkom a bez textu. Na tejto navigačnej lište je tiež predvolené tlačidlo Späť.
Toto UIButton som prepojil pomocou spojenia: Akcia, Typ: UIButton, Udalosť: Touch Up Inside a Arguments: Sender.
Keď kliknem na toto tlačidlo, nič sa nestane, neregistruje sa dotyk vôbec. Tlačidlo Späť funguje normálne.
Prečo sa to deje? Ako to opraviť?
odpovede:
0 pre odpoveď č. 1Skúste to:
Keďže ho pridávate do navigačnej lišty, musí to byť
UIBarButtonItem
, Akčná zásuvka, ku ktorej sa pripájate, musí mať určitý typUIBarButtonItem
a nieUIButton
.Skontrolujte, či je zásuvka
UIBarButtonItem
je správne pripojený.Skontrolujte, či interakcia používateľa z
UIBarButtonItem
je zapnutá.
0 pre odpoveď č. 2
Keď kliknem na toto tlačidlo, nič sa nestane, vôbec to neregistruje dotyk.
99% času, keď vidím túto sťažnosť,Dôvod je ten, že ste nejako umiestnili tlačidlo mimo jeho dohľad. Tlačidlo mimo jeho dohľad je viditeľné (predvolene), ale nie je možné sa ho dotknúť. (Niekedy sa to stane, pretože samotný dohľad nikdy nemal veľkosť, takže má nulovú veľkosť; iné niekedy je to z iného dôvodu.)
Nemôžem vám povedať nič viac, pretože vy už viac neuvádzam (tj. neuvádzate podrobnosti o tom, ako sa toto tlačidlo dostáva do navigačnej lišty). Ale som ochotný sa staviť, že ak sa dostanete hlbšie, zistím, že môj odhad je správny.
0 pre odpoveď č. 3
Vyriešil som to tak, že som do navigačnej lišty najskôr pridal položku navigácie a potom do položky navigácie pridal tlačidlo.
0 pre odpoveď č. 4
Ak chcete pridať tlačidlo na navigačnom paneli, musíte pridať toto:
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
Toto je pre ľavé tlačidlo. Rovnakým spôsobom môžete pridať pravé tlačidlo.