2009-06-09 11 views
1

Ich arbeite an einer iPhone App, habe aber festgestellt, dass ich eine andere Ansicht/ein anderes Fenster benötige, um den Benutzer zur Eingabe und zum Speichern von Daten/Informationen zu bewegen.iPhone App - Hinzufügen einer anderen Ansicht

Wie füge ich eine andere Ansicht hinzu? Füge ich es in den Schnittstellen-Builder ein und verknüpfe es dann im Hauptanwendungsdelegat oder wird es eigene H- und M-Dateien haben.

Ich habe eine Fensteransicht-App ausgewählt, mit der ich anfangen muss. Muss ich mit einer Flip-Side-App anfangen oder kann diese nur hinzugefügt werden, wenn ich den richtigen Code dort habe.

manny dank

Carl

Antwort

5

Die Fenster App ist perfekt für Sie. In Ihrer AppDelegate Datei, sollten Sie einen Abschnitt wie dieses:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    //instantiate the venue view controller object 
    YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]]; 

    // Configure and show the window 
    [window addSubview:[yourViewController view]]; 
    [window makeKeyAndVisible]; 

} 

Dies ist der Teil des Codes, der, zuordnet und fügt Ihre benutzerdefinierte Ansicht zum Fenster erklärt. Sie haben eine Auswahl, wie Sie die zweite Ansicht hinzufügen können. Sie können es entweder an dieser Stelle hinzufügen oder nach einem Navigationscontroller hinzufügen. Um die Navigation-Controller hinzuzufügen, das obige Verfahren ändern wie folgt aussehen:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

//instantiate the venue view controller object 
YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]]; 
    UINavigationController *yourViewControllerWrapper = [[UINavigationController alloc] initWithRootViewController: yourViewController]; 



// Configure and show the window 
[window addSubview:[yourViewControllerWrapper view]]; 
[window makeKeyAndVisible]; 

} 

Dort wir Ihre benutzerdefinierte Ansicht erstellen, dann wickeln Sie es in einer Navigationssteuerung. Der Navigationscontroller wird dem Fenster hinzugefügt. Als nächstes wird der Code in der zweiten Ansicht zu wechseln, würde so aussehen, Sie Blick auf einen Knopf drücken Schalter unter der Annahme:

-(IBAction)switchViewController{ 
    MySecondViewController *secondViewController = [[MySecondViewController alloc] init]; 

    [self.navigationController pushViewController:secondViewController]; 
} 

Natürlich sollten Sie die Zeile

MySecondViewController *secondViewController = [[MySecondViewController alloc] init]; 

mit der richtigen Art und Weise ersetzen von Instanziieren Ihres zweiten View-Controllers. Dies könnte aus einer Nib-Datei wie oben oder programmatisch sein.

Sofern Sie die Ansichtsdateien erstellen, sollten Sie in Interface Builder eine Feder für das Layout von allem erstellen und dann eine .h und .m Datei für den ViewController Code selbst erstellen.

+0

Vielen Dank für Ihre Hilfe, ich werde das ausprobieren – carl

1

Sie können auch einen neuen Rahmen anstelle einer neuen Ansicht anzeigen. Es ist manchmal einfacher, da Sie don t Parameter übergeben müssen - Sie in einer Klasse sind:

CGRect frame = okresView.frame; 
frame.origin.x = frame.size.width; 
if ([okresView superview] == nil) 
{ 
[self.view addSubview:okresView]; 
} 

okresView.frame = frame; 
[okresDataTableView reloadData]; // przeładowanie tabeli na subwidoku 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:.5]; 
frame.origin.x = 0; 
okresView.frame = frame; 
[UIView commitAnimations]; 

wenn Sie neue subview möchten, können Sie ein paar Methoden verwenden - einfach herunterladen wenige Anwendungen von XCode Hilfe und Kontrolle wie sie das machen. Ein schönes Beispiel finden Sie in den Anwendungen "Elements" und "UICatalog", wo Sie Ansichten und andere Beispiele umgedreht haben.

// Erstellen und drücken Sie einen anderen View-Controller. UIViewController * myViewController = [[UIViewController alloc] init]; myViewController.title = @ "Meine erste Ansicht"; myViewController.view.backgroundColor = [UIColor redColor];

// um die UIView zu drücken. [self.navigationController pushViewController: myViewController animiert: YES];

Verwandte Themen