Почему мои взгляды перекрывают друг друга? - PullRequest
0 голосов
/ 07 мая 2011

Я просто не могу понять точку зрения и почему-то не могу найти одно ясное решение.

У меня есть вид "A", и у него есть кнопка для перехода в другой вид "B". Представление B переводит меня к просмотру C, а представление C возвращает меня к A.

В представлении C везде, где пользователь нажимает, он видит изображение. Код для этого находится в файле .m C.

Проблема в том, что когда я переключаюсь из представления C в A, код для C все еще работает в представлении A? Если я нажимаю на А, я вижу это изображение везде, где нажимаю, но А - это мое меню, а не часть игры. Метод, с помощью которого изображение появляется на кране, относится только к просмотру C!

Я не могу понять эти взгляды; в начале я использовал insertSubview:atIndex:, и все перекрывалось, так что теперь я использую addSubview:, и у меня есть эта проблема.

Может кто-нибудь объяснить геометрически, как это работает?

Почему кнопки вида C видны на экране A иногда без причины? Почему после загрузки C и возврата к A он реализует код C в представлении A?

Почему мои взгляды все время перекрываются? Я хочу, чтобы все представления работали отдельно и не видели ничего из представлений, стоящих за ним, или не реализовывали код из представлений, которые были загружены в прошлом.

Пожалуйста, помогите мне с моими взглядами. Большое спасибо.

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Вместо просмотра, вы, вероятно, хотите сосредоточиться на UIViewControllers.С этим у вас не возникнет такой проблемы, UIViewController почти всегда является полноэкранным, и вы можете написать код специально для него.Вы можете создать три подкласса UIViewController, один для A, B и C. В каждое перо вы можете добавить кнопку и использовать ее для представления следующего контроллера представления (возможно, с использованием presentModalViewController :).В третьем подклассе вы можете реализовать свою логику для отображения изображения, когда пользователь нажимает.

0 голосов
/ 07 мая 2011

Хорошая практика, скажем, у вас есть

UIViewController * myViewController с 3 свойствами:

UIVIew * viewA

UIView * viewB

UIView* viewC

Если вы хотите включить воспроизведение, поместите viewA в стек, просто установите

myViewController.view = viewA;

и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...