2013-05-05 2 views
0

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

[self.childViewControllers[13] view].hidden = NO; 

Сокрытие/Отмена скрытия работает отлично, но только один из них позволяет использовать элементы управления на нем ..... это верхний.

Как мне изменить порядок при скрытии/открытии кликов пользователей, пожалуйста?

я сейчас попробовал следующее на основе ответов вчера:

UIView *x = self.childViewControllers[12]; 
[self.view bringSubviewToFront:x]; 

но дает ошибку

unrecognized selector sent to instance

Я также попытался:

UIView *x = self.childViewControllers[12]; 
     x.layer.zPosition = 100; 

, который дает такое же сообщение об ошибке благодарит лоты

+0

Показать код, который вы используете, чтобы попытаться привести один из взглядов ребенка зрения контроллера к фронту. – rmaddy

+0

Привет, я обновил свой вопрос. thx – Pinwheeler

+1

В первой попытке вашего обновленного вопроса измените 'x' как' UIViewController'. Затем вызовите 'bringSubviewToFront:' с 'x.view'. – rmaddy

ответ

0

Вы можете принести (перезаказ) любой подвид на фронт, используя следующий: -

viewToBeShown.hidden=FALSE; 
[self.view bringSubviewToFront:viewToBeShown]; 

Этого метод принесет viewToBeShown на вершину каждого подвида в self.view

Надеется, что это поможет вы .

+0

Привет, Спасибо за предложение, но он дает следующую ошибку: непризнанный селектор, отправленный в экземпляр. Я добавил код, который я использовал в свой первоначальный вопрос. thanks – Pinwheeler

+0

Выделили выбранный вами вид вести фронт.ошибка, которую вы получаете, потому что вы пытаетесь получить доступ к любому освобожденному экземпляру не из-за вышеуказанного кода. Подтвердите это и сообщите мне, если это вам поможет. :) –

+0

Да, они все выделены автоматически на viewdidload, так как я добавил их на раскадровку. Они скрывают и отображают штраф, но в зависимости от того, что я перечисляю последним в схеме раскадровки, это единственный, который принимает взаимодействие с пользователем. – Pinwheeler

1
[self.view bringSubviewToFront:desiredView] 

Это позволит решить вашу проблему наилучшим образом.

+0

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

+0

UIView * x = self.childViewControllers [12]; вместо этого вы можете использовать UIView * x = self.childViewControllers [12] .view; [self.view bringSubviewToFront: x]; и ваша проблема будет решена. –

+0

Вид недвижимости не найден на объекте типа id. – Pinwheeler

1

У меня была та же проблема. Кажется, что при использовании Container Views фактическое представление контроллера содержимого размещается внутри прозрачного вида контейнера. Так что если вы действительно хотите скрыть контейнера View отображения Просмотр V, вы должны использовать

v.superview.hidden = YES 

вместо

v.hidden = YES 
0

Просто сделайте выход из раскадровки к container view, и скрыть его!

В стрижа:

func setViewEnabled(view:UIView, enabled:Bool) 
{ 
    view.hidden = !enabled 
    view.userInteractionEnabled = enabled 
}