/ / Jak zamknąć okno dialogowe w Objective C - ios, target-c, viewcontroller

Jak zamknąć okno dialogowe w Objective C - ios, target-c, viewcontroller

Mam kontroler widoku A i kliknięcie przycisku, iotworzyłem inny kontroler viewcontroller ze stylem prezentacji jako Arkusz formularza. W drugim widoku kontroler, który jest otwarty, ma dwa przyciski. Teraz, po kliknięciu tych przycisków, drugi kontroler widoku powinien zniknąć, a następny kontroler powinien otworzyć się na kontrolerze widoku A. Ale kiedy próbuję poniżej, inne kontrolery widoku otwierają się w oknie dialogowym Nie wiem, jak odprężyć się na tej ulicy i połączyć ze sobą kolejną scenę.

Odpowiedzi:

0 dla odpowiedzi № 1

Nitya, czy wypróbowałeś poniższy fragment kodu, aby odrzucić bieżący kontroler widoku. Użyj go w IBAction przycisku, gdzie chcesz odrzucić viewController: -

self.dismissViewControllerAnimated(true, completion: nil)

0 dla odpowiedzi nr 2

Masz więc kontroler główny root A z przyciskiem. Jeśli naciśniesz ten przycisk, inny kontroler widoku (nazwijmy go B) jest przedstawiony przez A jako arkusz formularza B ma dwa przyciski i jeśli naciśniesz jeden z tych przycisków, B powinno zostać odrzucone i po inny kontroler viewcontroller (powiedzmy C) powinien być przedstawiony przez A.

Apple nie polecam tego rodzajuworkflow, ale możliwe jest jego wdrożenie. Możesz rozważyć użycie kontrolera nawigacyjnego lub kontrolera master-detail zamiast tego. Ale jeśli trzymasz się swojego oryginalnego pomysłu, oto kilka możliwych implementacji:

1. Jeśli korzystasz z storyboardu, a przycisk na B uruchamia rozwijaną zmianę na A, możesz dodać to do końca rozwijanej akcji seque:

dispatch_async(dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"segueThatPresentsC" sender:nil];
});

2. Jeśli programowo przedstawisz swoje viewcontrollers: Zanim przedstawisz B z A możesz skonfigurować przycisk B tak, aby był to cel A, a jego akcja jest metodą zdefiniowaną w A:

- (void) dismissAndPresentC {
[self dismissViewControllerAnimated:YES completion:^{
[self presentViewController:instanceOfC animated:YES completion:nil];
}];
}

Ta sekunda to może nieco mniejszy hack, ale wciąż myląca koncepcja.