2009-09-16 3 views
6

У меня есть UITabBarController в моем приложении. В первом представлении этого контроллера у меня есть UINavigatioController, и пользователь может перейти к нескольким представлениям через этот NavigationController. В корневом представлении этого контроллера у меня есть внешний вид или основной вид приложения, в котором есть значок информации, который переворачивает экран на информационную страницу, которая является другим видом в приложении appDelegate. Поэтому я использую следующий код из моего приложения appdelegate для перехода на информационную страницу.Как удалить белую панель сверху в iPhone

UIView * controllersView = [aboutUsViewController view]; 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES]; 
[self.window addSubview:controllersView]; 
//[aboutUsViewController animateView]; 
[self.tabBarController.view removeFromSuperview]; 
[UIView commitAnimations]; 

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

Я смущен, как удалить этот бар, так как у меня есть UIImage, охватывающий всю мою страницу на главном экране.

Как это решить.

ответ

0

У меня была та же проблема. Я думаю, что это ошибка в ОС 3.1. Создайте ошибку с Apple. Моим текущим обходным путем было использование стандартного сдвигового модального перехода. Не лучшее решение, но, по крайней мере, это не выглядит странно.

+0

http://bugreport.apple.com/ – slf

0

Вы пробовали установить wantsFullScreenLayout на свой контроллер?

2

Если полоса видима только во время перехода, измените цвет основного окна так же, как и вид, который вы просматриваете. Или вы можете сделать его полностью прозрачным, что может сделать то же самое.

+0

Ну даже если я изменить цвет главного окна, фон изменится означает фон при транзите. Я говорю о баре на экране, который является переходом, тогда как окно остается на том же месте. – rkb

+0

Каковы размеры ваших двух видов? И у вас есть tabBar на первых представлениях, и ни одного на информационном представлении, правильно? У вас есть строка состояния в одном или обоих представлениях? – mahboudz

0

Я не уверен, отображается ли строка состояния или нет, но вы можете проверить, полностью ли ваш размер UIImage находится в верхней части вашего представления, особенно если вы добавили его в IB. Кроме того, попробуйте настроить настройку кеша в своем переходе на НЕТ, чтобы узнать, имеет ли это значение. Он использует больше ресурсов, но мне пришлось сделать это, чтобы прекратить заполнение текстовых полей во время перехода.

+0

Да UIImage охватывает до верхней части. – rkb

0

Вы, вероятно, не должны делать все эти анимации самостоятельно. Я не совсем уверен, какова ваша цель, но может быть проще использовать что-то под названием «pushModalViewController» и иметь контроллер для вашей информационной страницы вместе с представлением. Это может решить проблему, потому что это может быть просто связано с анимацией.

Затем, когда вы покидаете свою информационную страницу, управление возвращается к вашему контроллеру навигации (это то, что я думаю, вы хотите). Надеюсь, это поможет.

0

Я имел такие же головоломки/загадка/проблемы: после переключения назад от модального зрения основного вида имел светло-голубую строку состояния, которое показало, в течение половины секунды:

enter image description here

Однако, поскольку Я сделал этот снимок экрана, я понял, что это не строка состояния, а какая-то дальняя часть панели навигации. Я включил панель навигации от в приложение делегата, но здесь до сих пор, и только в течение переходного периода (после перехода UIModalTransitionStyleFlipHorizontal не было синий бар)

Поэтому то, что я давал ему полупрозрачный цвет:

self.title = @""; 
self.navigationController.navigationBar.tintColor = [UIColor clearColor]; 

Не может быть лучшим решением в мире, но это не ошибка с Apple.

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