2011-11-02 8 views
28

Prawdopodobnie istnieje proste rozwiązanie, ale nie mogę tego rozgryźć.Łączenie nowego kontrolera widokowego ze Storyboard?

Używam scenorysów do interfejsu.

Zaczynam od kontrolera paska kart, ale zanim użytkownik może korzystać z aplikacji, użytkownik musi uwierzytelnić się przez login, który jest modalnie pchany na początku.

Chcę skonfigurować widok logowania w tym samym scenariuszu, ale nie mogę się połączyć, aby dowiedzieć się, jak połączyć kontroler widoku w scenorysie i moim kodzie.

Co mam zrobić:

  • utworzyć nowy plik koryta UIViewController podklasa> Nowy> nowy plik.
  • Przeciągnij nowy UIViewController w scenorys
  • wybrać klasę na karcie niestandardowej klasy
  • przeciągnie UILabel dla celów testu.
  • prowadzony

Nie etykieta ...

Odpowiedz

40

Pull nad nowym UIViewController, który będzie działał jako kontroler widoku logowania na MainStoryboard. W inspektorze atrybutów zmień identyfikator na LoginViewController (lub coś odpowiedniego). Następnie dodaj do kontrolera widoku pierwszego, a ekran logowania zostanie załadowany z Twojego scenorysu i przedstawiony.

Mam nadzieję, że to pomoże.

+0

Nie, nie to miałem na myśli. Mam pliki .m i .h i nie chcę żadnego pliku .xib, ale skonfiguruję widok w głównym scenorysie. – Justin

+0

Wyjaśniłem, jak utworzyć ekran logowania w Main Storyboard, więc nie potrzebujesz Xib. –

+0

Ale tego nie chcę. Na przykład, gdy masz dynamiczny widok tabeli, który chcesz nacisnąć widok po naciśnięciu komórki. Ale jak możesz to zrobić za pomocą storyboardów. – Justin

6

Odpowiedź Scotta Sherwooda powyżej jest najbardziej poprawną odpowiedzą, którą znalazłem po wielu poszukiwaniach. Choć bardzo niewielka zmiana w stosunku do nowego zestawu SDK (6.1), presentModalViewController jest przestarzały.

Oto bardzo mała zmiana w stosunku do powyższej odpowiedzi.

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; 
    HomeViewController * hvc = [sb instantiateViewControllerWithIdentifier:@"LoginView"]; 
    [hvc setModalPresentationStyle:UIModalPresentationFullScreen]; 
    [self presentViewController:hvc animated:YES completion:nil]; 
+0

Dziękujemy za udostępnienie! – Justin

1

Jestem nowy w tej dziedzinie. Ale jeśli pierwszym kontrolerem widoku jest kontroler widoku nawigacji, a jego kontrolerem rootview jest kontroler widoku tabeli. Jeśli chcesz nacisnąć kontroler widoku, taki jak LoginViewController, po kliknięciu komórki, a także chcesz wrócić do widoku tabeli za pomocą paska nawigacji. Polecam w ten sposób:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *controller = [sb instantiateViewControllerWithIdentifier:@"LoginViewController"]; 
    [self.navigationController pushViewController:controller animated:YES]; 
} 

W ten sposób możesz korzystać z nawigacji.

Nawiasem mówiąc, nie wiem, dlaczego pojawi się taki problem. Domyślam się, że w kodzie tworzony jest loginviewcontroller, którego widok nie jest widokiem w serii scenariuszy. Jeśli ktoś zna przyczynę, proszę, powiedz mi! dzięki!

Powiązane problemy