2013-12-15 7 views
0

Хорошо это странная проблема, когда-либо, ну, может быть, нет, но в любом случае :-)UIView кажется заперта - это странно один

У меня есть проект, и все, кажется, работает хорошо, я добавил CoreData и все (включая другие), поэтому, короче говоря, код работает без ошибок или сбоев.

За исключением этого: Мой начальный UIViewController не позволяет мне изменять его цвет или добавлять к нему какие-либо подвид. В коде да нет проблемы. В раскадровке снова не проблема, но когда я запускаю ее в Симуляторе или приложении, он просто показывает белый.

Теперь у меня нет code или storyboard изображений, на которых я знаю, нахмурился, но я действительно не мог сказать вам, где моя проблема.

Однако это то, что я пробовал:

1) Создан новый UIViewController в раскадровку.

2) Создан новый файл Подкласс Objective-C, с другим именем и удалил старый

3) создал новый проект и передал все через

4) удалён и сброс приложения на iPhone Simulator

5) Удалено приложение на устройствах

Теперь, когда я добавить код self.view.backgroundColor = [UIColor redColor]; в любой другой UIViewController в рамках проекта или добавить UIImageView где-нибудь еще, он работает. Только начальныйUIViewController.

Может кто-то, пожалуйста, так любезны, чтобы помочь - у меня нет идей, и я не хочу, чтобы белый UIViewController был моей целевой страницей.

Снова прошу прощения за визуальную помощь или код, но я бы опубликовал весь свой проект. Спасибо заранее.

===================================

Редактировать

for (UIButton *btn in self.view.subviews) 
{ 
    [btn removeFromSuperview]; 

} 

Убирает UIImageView.

+0

Как вы получаете на других контроллерах мнение, что работа? Вы получаете что-то, что работает на начальном экране? – Wain

+0

Да - кнопки в UINavigationColler, в которых он встроен, и по какой-то причине также работают закодированные кнопки. Извините, забыл об этом. –

+0

Autolayout? Непосредственно скрытый вид? Какую отладку вы сделали над отображаемыми видами ('recursiveDescription' основного вида)? – Wain

ответ

1

Этот код:

for (UIButton *btn in self.view.subviews) 
{ 
    [btn removeFromSuperview]; 
} 

Вы, кажется, предположить, что он будет обрабатывать только кнопки - но вы ошибаетесь. Вы просто просите компилятор доверять вам, что все в массиве subviews является экземпляром UIButton. Так что вы делаете, итерации по всем subviews, независимо от того, что они есть, и удаляя их.

Чтобы удалить только кнопки:

for (UIView *view in self.view.subviews) 
{ 
    if ([view isKindOfClass:[UIButton class]]) { 
     [view removeFromSuperview]; 
    } 
} 
+0

Спасибо - я действительно ошибался. Спасибо, что поставил меня прямо :-) –

Смежные вопросы