2013-12-23 4 views
0

Я загружаю представление, которое получает данные из webservices. Поэтому, в зависимости от кода ответа с сервера, я показываю текущее представление или перенаправляет его на другое представление (ErrorView), если responseecode равно 400. Но я не перенаправляюсь в ErrorView и не нахожу сообщение на консоли "Attempt to present <ErrorView: 0xe332f30> on ViewController while a presentation is in progress!"viewdidLoad/viewDidAppear issue

После того, я нашел место vieDidLoad код для viewDidAppear После размещения всего кода, он перенаправляет ошибки просмотра и работу correctly.But в ios7 для выпуска Строки состояния Я использовал код

-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    if(responsecode==200) 
    { 
     //load current view 
    } 
    else 
    { 
    //Load anotherview(ErrorView) 
    } 
    float systemVersion=[[[UIDevice currentDevice] systemVersion] floatValue]; 
    if(systemVersion>=7.0f) 
    { 
     CGRect tempRect; 
     for(UIView *sub in [[self view] subviews]) 
     { 
      tempRect = [sub frame]; 
      tempRect.origin.y += 20.0f; 
      [sub setFrame:tempRect]; 
     } 
    } 

} 

Сначала статусный появляются на вершине, то после загрузки всех viewdata, просмотр будет скорректирован и status bar dropsdown by 20px, что выглядит странно. Возможно, он будет автоматически настроен fore viewloads полностью?

Любые идеи/предложения были бы заметны.

+0

которого вид держит строку состояния? текущий вид или ErrorView ?? –

+0

CurentView держит его – Honey

+0

, тогда мой ответ разрешит вашу проблему. –

ответ

1

Я думаю, вы должны отделить этот код

-(void)viewDidLoad 
{ 
    float systemVersion=[[[UIDevice currentDevice] systemVersion] floatValue]; 

    if(systemVersion>=7.0f) 
    { 
     CGRect tempRect; 
     for(UIView *sub in [[self view] subviews]) 
     { 
      tempRect = [sub frame]; 
      tempRect.origin.y += 20.0f; 
      [sub setFrame:tempRect]; 
     } 
    } 
} 

-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    if(responsecode==200) 
    { 
     //load current view 
    } 
    else 
    { 
    //Load anotherview(ErrorView) 
    } 
} 
+0

Я пробовал код ur.Но появляется навигационная панель в строке состояния в строке состояния ios7.ios7 (20px). – Honey