2012-04-13 14 views
-1

Ich versuche Facebook wie Schiebeansicht zu implementieren, ohne ein Framework zu verwenden. Was ich tue, war, dass ich die UINavigation Controller-Ansicht (sagen wir NVC1) im App-Delegaten erstellte, und ich habe darin eine Tabellenansicht geladen. Ich erstelle auch einen anderen navigationviewcontroller (sagen wir NVC2) auf oberem NVC1. Ich habe oben links von NVC2 eine Balkenschaltfläche platziert. Wenn ich in NVC2 auf die Balkenschaltfläche klicke, wird sie zur Seite des Bildschirms verschoben (ich animiere manuell), so dass die NVC1 hinter NVC2 sichtbar wird. Wie bereits erwähnt, enthält NVC1 eine Tabellenansicht. Wenn ich in NVC2 auf die Tabellenansichtszelle klicke, sollte sie über NVC1 angezeigt/animiert werden. Wie kann ich das tun oder gibt es einen Weg dies zu tun?So rufen Sie den UINavigation Controller in Ziel c

NVC1

NVC2

Antwort

0

Wenn Sie iOS 5, verwenden Storyboards, erstellen Sie eine nav-Controller, fügen Sie Ihre VC mit Tableview, erstellen Sie eine zweite VC dann mit der rechten Maustaste ziehen Sie aus dem 1. VC mit tableView's Zelle zum 2. VC & wählen Sie "push". Es wird dann alles automatisch passieren! Klingt kompliziert, aber wenn du es ein paar Mal getan hast, ist es viel einfacher, als mit Code herumzuspielen. Auf der anderen Seite, manchmal müssen Sie es codieren - wenn Sie wirklich brauchen, um & Sie sind immer noch stecken, lassen Sie es mich wissen & Ich poste etwas Code für Sie.

+0

zu sehen ist: i ios5 bin nicht verwenden. Auch ich bin nicht daran interessiert, Xib zu verwenden. Ich erstelle alle durch programmatisch. –

+0

Wie kann ich Navigationssteuerpult von einer anderen Ansicht benennen. wenn ich pushViewController verwende, kommt neuer NVC2 Ansichtsteuerpult. das alte NVC2 (das ich animierte) ist noch dort. wie kann ich NVC2 animieren Von NVC1. –

0

Implementieren Sie die Methode - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath und

SecondViewControllerNVC2 *objectNVC2 in .h-Datei schreiben Sie es wie folgt

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
       if (!objectNVC2) { 
       objectNVC2 = [[SecondViewControllerNVC2 alloc] initWithNibName:@"SecondViewControllerNVC2" bundle:nil]; 
       UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; 
      self.navigationItem.backBarButtonItem = backBarButtonItem; 
      [backBarButtonItem release]; 
      [self.navigationController pushViewController:objectNVC2 animated:YES];  
} 
+0

Der obige Code wird den neuen NVC2 auf den Bildschirm schieben. Aber der NVC2, den ich bereits nach rechts geschoben habe, bleibt dort ... –

Verwandte Themen