Jeśli używasz scenorysu, prawdopodobnie nie powinieneś używać alloc
i init
do tworzenia nowego kontrolera widoku. Zamiast tego spójrz na swój scenorys i znajdź segue, który chcesz wykonać; powinien mieć unikalny identyfikator (a jeśli nie, możesz go ustawić na prawym pasku bocznym).
Po znalezieniu identyfikatora dla tego segue, wyślij swoją obecny kontroler Zobacz -performSegueWithIdentifier:sender
wiadomość:
[self performSegueWithIdentifier:@"mySegueIdentifier" sender:self];
To spowoduje storyboard do instancję AddTaskViewController i przedstawia je w sposób, który "zdefiniowany dla tej segue.
Jeśli, z drugiej strony, nie używasz storyboard w ogóle, to trzeba dać AddTaskViewController jakiś interfejs użytkownika. Najczęstszym sposobem robić to jest inicjalizacja kontrolera w stalówkę: zamiast po prostu wywołanie init
, zadzwonisz -initWithNibName:bundle:
i podać nazwę .xib pliku, który zawiera interfejs dodatek zadanie:
AddTaskViewController *add = [[AddTaskViewController alloc]
initWithNibName:@"AddTaskView" bundle:nil];
[self presentViewController:add animated:YES completion:nil];
(Istnieją inne (rzadziej spotykane) sposoby uzyskiwania widoku skojarzonego z nowym kontrolerem widoku, ale prawdopodobnie będzie to miało najmniejsze problemy z działaniem.)
To nie jest pytanie Xcode. Ponadto, nie mogłem wywnioskować, co masz na myśli mówiąc "drugi kontroler to nic", więc zostawiłem go w stanie nienaruszonym. –