13

I was developing a UISplitView app by using Xcode 4.6 when I left iOS6 I had design:

enter image description here

Now I migrate to new Xcode5 and now I have this design:

enter image description here

UINavigationBar overlaps completelly my UISearchBar...

Leo Natan told me about using a iOS 6/7 Deltas but since I'm creating and adding my UISplitViewControllers programmatically,

this may doesn't work I need to set the iOS 6/7 programmatically but I don't know how, any help I'll appreciate

Jesús Ayala
  • 2,743
  • 3
  • 32
  • 48
  • 2
    If you want to do this in code, you have to work with frames. `if (iOS7) {view.frame = ...} else {view.frame = ...}` – Petro Korienev Sep 25 '13 at 15:50
  • @PetroKorienev Or just change constraint constants? It's easier than to update frames. – Sulthan Dec 10 '13 at 15:10
  • The OP doesn't use auto-layout, and initialized his controllers in code. Adding constraints in code isn't way easier than updating frames.. – Petro Korienev Dec 11 '13 at 11:44

4 Answers4

17

In iOS 7 there are now extended edges, and that's why navigation bar overlaping the searchbar. You can set self.edgesForExtendedLayout = UIRectEdgeNone; this is UIVewControlelr property. You can also make checks depending on version of iOS and You can do things depending on current version of iOS in device.

NSString *version = [[UIDevice currentDevice] systemVersion];
int ver = [version intValue];
if (ver < 7){
//iOS 6 work
}
else{
//iOS 7 related work
}
Adnan Aftab
  • 14,377
  • 4
  • 45
  • 54
5

Also, you can use NSFoundationVersionNumber

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
  // > iOS7
} else {
  // <= iOS6
}
Alessandro Pirovano
  • 2,509
  • 28
  • 21
3

You can create a makro for solve this problem. it is useful for me.

#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 )
Daniel
  • 23,129
  • 12
  • 109
  • 154
Erhan
  • 908
  • 8
  • 19
-2

If the view's embedded in a UINavigationController - simply untick "Translucent" for your root navigation bar.

In storyboard, select Navigation Controller Scene, next select Navigation Bar and in Attributes Inspector (Utilities - 4 tab) untick "Translucent"