zoukankan      html  css  js  c++  java
  • ios7适配--navgationbar遮住下面view的处理

    Have you guys stumbled up on this issue ?

    Basically in iOS 7 Navigation Controller is rendered over the sub-view I navigated to.

    In iOS 6 view I navigate to is enclosed between navigation bar and footer. In iOS 7 it looks like sub-view is rendered full-screen, under navigation bar and footer. As result user don't see it.

    Here is how I navigate to subview

    BRSMyListSubViewController*tagsInfoVC =[[BRSMyListSubViewController alloc] initWithCheckinsList:self.checkinsList
                                                                                    selectedTag:[self tagByIndexPath:indexPath]];[self.navigationController pushViewController:tagsInfoVC animated:YES];

    Here is how I initialize it in viewDidLoad

    self.navigationItem.leftBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(settings:)];
    
    self.navigationItem.rightBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStyleBordered target:self action:@selector(logout:)];

    For what it's worth I should also mention that sub-view is defined in XIB using Autolayout. Here is source of my XIB: http://pastebin.com/6RR0zYu4

    And finally here is how it looks in iOS 6

    enter image description here

    And in iOS 7

    enter image description here

    Any thoughts ?

    share|edit|flag
      add comment

    Well, I figured it out.

    In your sub-view (BRSMyListSubViewController in my case), in viewDidLoad, you need to set one of these two

    self.edgesForExtendedLayout =UIRectEdgeNone;
    self.automaticallyAdjustsScrollViewInsets = NO;

    OR

    self.edgesForExtendedLayout =UIRectEdgeNone;
    self.extendedLayoutIncludesOpaqueBars = YES;

    Interestingly enough in root view controller these value are set to default UIRectEdgeAllNO andYES respectively but its tableView is NOT under navbar and footer.

    I don't know why it's so illogical.

    It's also strange that edgesForExtendedLayout has to be mixed with one of two other properties even though it's clearly responsible for the behavior.

    share|edit|flag
     
      upvote
      flag
    Thank you for putting the answer, it really helped me. – titicaca Sep 12 at 6:11
  • 相关阅读:
    java——阶段性整理(方法的重载重写和一些关键字)
    设计模式——单例模式
    source
    set和setenv
    c++编译加执行脚本
    python脚本小记
    转义字符
    istream_iterator/ostream_iterator
    字符串替换程序 p324
    程序编译后运行时的内存分配
  • 原文地址:https://www.cnblogs.com/sunshine-anycall/p/3338688.html
Copyright © 2011-2022 走看看