2009-07-20 8 views

Antwort

0

Sie müssen einen "Ausgang" definieren und verbinden. Werfen Sie einen Blick auf the documentation und beachten Sie den Abschnitt "Verbindungen und Bindungen".

10

In der Klassendeklaration, ein Button-Objekt, erklären und sicherstellen, dass es als IBOutlet angegeben:

IBOutlet UIButton* myButton; 

Sobald Sie diese Änderung speichern, wenn Sie Interface Builder gehen, sollten Sie diesen Ausgang sehen wenn Sie mit der rechten Maustaste auf den Eigentümer Ihrer Datei klicken (vorausgesetzt, Sie haben den Besitzer der Datei richtig angegeben). Verknüpfen Sie diesen Ausgang mit der UIB-Schaltfläche auf dem Bildschirm, indem Sie mit der rechten Maustaste ziehen.

Jetzt ist das On-Screen-Objekt Ihrem In-Codenamen zugeordnet.

Überall dort, wo Sie den Text auf der UIButton, sagen Sie einfach zu ändern:

[myButton setTitle:@"Back - or whatever else you want it to say" 
      forState: UIControlStateNormal ]; 
// you can set different title text for each state 
// of the button (selected, active, or normal) 
+1

Wert zu klären, dass das kein Objekt, sondern eine Variable ist. Die Variable enthält einen Zeiger auf das Objekt (sobald die Spitze geladen wurde). Ich weiß, dass du das weißt, aber viele Leute bekommen das durcheinander und denken, dass die Variable das Objekt ist. –

2

Sie werden für IB einen Ausgang einrichten müssen:

@interface MyViewController : UIViewController { 
    IBOutlet UIButton *myButton; 
} 

speichern, bringen IB, Setzen Sie den Besitzer der Datei auf MyViewController, und erstellen Sie dann im Fenster "Connections" Informationen zu den entsprechenden Punkten im Eigentümer der Datei.

Dann in der Umsetzung, könnten Sie tun:

[myButton setTitle:@"Back" forState:UIControlStateNormal]; 

Wenn Sie mit den Verbindungen verloren gehen, würde ich empfehlen bei http://www.stanford.edu/class/cs193p/cgi-bin/index.php, einen Blick auf die Vorlesungsnotizen und Video-Vorlesungen, die in einige Details gehen über iPhone Grundlagen.

Hoffe, dass hilft.

4

Alternativ können Sie dem Steuerelement ein eindeutiges Tag zuweisen und -[UIView viewWithTag:] verwenden, um einen UIView Zeiger auf das Steuerelement zu erhalten. In den meisten Fällen sind Steckdosen der bevorzugte Mechanismus, aber Tags sind in Dingen wie Tabellenzellen nützlich.

2

Die meisten Beiträge haben sich bisher auf die Erstellung der Schaltfläche konzentriert und sind sehr korrekt. Folgendes beantwortet den Rest der Frage:

Wenn ich auf die Schaltfläche klicke und die zweite Ansicht angezeigt wird, wie programmiere ich den Text der Schaltfläche programmatisch (z. B. "zurück" sagen)?

Der einfachste Weg, wenn ich Ihre Situation richtig verstehe, ist die Verwendung des Plug-n-play UINavigationBarControllers. Zuerst mögen Sie Ihre zweiten View-Controller auf die Ansicht Stapel schieben:

// In firstViewController.m 
self.navigationController = [[UIViewController alloc]initWithNibName:@"secondView" bundle:nil]; 
[self pushViewController:secondViewController animated:TRUE]; 

Wenn Ihre zweiten View-Controller angezeigt wird, erhalten Sie automatisch eine Zurück-Taste auf der linken Seite der nav-Bar erhalten sollen.Wenn es notwendig ist, den Text, dass Zurück-Taste zu ändern, können Sie einfach darauf verweisen, wie so:

// In secondViewController.m 
-(void)ViewWillAppear 
{ 
    [self.navigationItem.backBarButtonItem setText:@"GoBack"]; 
} 

Es gibt auch die linke und rightBarButtonItem (n), die für komplexere Navigation handlich ist. Hier ist ein weniger Plug-and-Play-Szenario:

// In secondViewController.h 
-(IBAction)goBack; (this should appear as an action in your associated nib file) 

// In secondViewController.m 
-(void)viewDidLoad 
{ 
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"GoBack" style:UIBarButtonItemStylePlain target:self action:@selector(goBack)]; 
} 

-(IBAction)goBack 
{ 
    // logic to be done before going back 
    [self popViewControllerAnimated:secondViewController animated:TRUE]; 
} 
+0

Also, das ist Ziel-c. Es sieht schmutzig. – jjnguy

Verwandte Themen