• 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
  • 相关阅读:
    CSS display使用
    WPF触发器
    WPF动画2
    WPF动画2
    WPF 动画1
    CSS 媒体查询
    [Leetcode] Rotate List
    [Leetcode] Add Two Numbers
    [Leetcode] Sort List
    [Leetcode] Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/sunshine-anycall/p/3338688.html
Copyright © 2020-2023  润新知