UIButton, addTarget naar ander object dan "self"
Stel je hebt een UIBUtton *button en je wil daar een actie aan koppelen naar een method in een ander object, in plaats van "self".
Met andere woorden: Je hebt een ViewController, van waaruit een object wordt aangeroepen (bijv een UITableViewCell met een UIButton) en als de button wordt ingedrukt moet er een method "klik:" worden aangeroepen in de viewController. Code:
[button addTarget:anderObject action:@selector(klik:) forControlEvents:UIControlEventTouchUPInside]; Iemand een idee?? |
In dit geval gebruik je self, omdat de method gebruikt wordt icm een UIButton.
Met de action: method geef je aan wat de button moet doen. In dit geval, als iemand op de button drukt, wordt klik: method aangesproken. Dus als de knop iets moet doen, moet je klik: method instellen. Bv. zo: - (void)klik: (id)sender { // wat je button moet doen } (id)sender is niet nodig als argument, maar ik vind het altijd prettig om aan te geven welke methods voor de interface worden gebruikt. In de documentatie staat dat addTarget: een (id) als argument heeft. Dat betekent dat je elk object, wat kan reageren op deze method, kan gebruiken (alles wat van UIControl class afstamt). |
Nou waar jij anderObject hebt staan moet een instantie pointer zijn naar het andere object.
Dus als jij in de viewcontroller een andere viewcontroller hebt ja die dus gewoon daar neer zetten. |
Bedankt voor de reacties :)
Alleen moet je dan dus denk ik wel een nieuwe instantie van je viewcontroller maken. iK vroeg me eigenlijk ook af of het mogelijk was om het target van de UIButton te zetten op een al eerder gemaakte instantie van een object (bijv viewcontroller). Ik wilde vanuit een ander object de ABPeoplePickerNavigationController (wie verzint dat soort rare namen pffff haha) aanroepen zodat dat ding opent in de viewcontroller, maar heb dat nu gedaan door met hittest de gegevens van het touch object naar de viewcontroller te sturen, wat denk ik ook een betere manier is :) |
Alle tijden zijn GMT +2. Het is nu 06:31. |