У мене є теоретичне питання. Тепер я читаю посібник із ViewController від Apple .
Вони написали:
Коли настає час відмовитися від представленого контролера подання, кращим підходом є дозволити представнику подання подання відхилити його. Іншими словами, коли це можливо, той самий контролер подання, який представляв контролер перегляду, також повинен нести відповідальність за його відхилення. Незважаючи на те, що існує декілька методів сповіщення представленого контролера подання про те, що його представлений контролер подання повинен бути відхилений, кращим методом є делегування.
Але я не можу пояснити, чому мені потрібно створити протокол у представленому VC та додати змінну делегата, створити метод делегата для подання VC для відхилення представленого VC, а не простий виклик у представленому методі контролера перегляду
[self dismissViewControllerAnimated:NO completion:nil]
?
Чому перший вибір кращий? Чому Apple рекомендує це?
presentingViewController
здебільшого марно, оскільки це стосуватиметься,UINavigationController
якщоself
вбудований в одне ціле. У цьому випадку, ви не зможете отриматиpresentingViewController
на всіх. Тим не менш,[self dismissViewControllerAnimated:completion]
все ще працює в цьому випадку. Моя пропозиція буде продовжувати використовувати це, поки Apple не виправить це.