簡體   English   中英

UINavigationController框架問題

[英]UINavigationController frame issue

我的視圖控制器A中有UINavigationController

@property (nonatomic, strong) UINavigationController *containerNavigationController;

在視圖中,控制器AI具有init方法

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];

    if (self)
    {
        _containerNavigationController = [UINavigationController new];

       _containerNavigationController.navigationBarHidden = YES;
    }

    return self;
}

在視圖中加載方法我有這個代碼:

[self.view addSubview:_containerNavigationController.view];

[_containerNavigationController.view setFrame:CGRectMake(247, 64, 700, 700)];

正如你可以看到nag視圖的高度os 700,但是當我運行app時,我可以看到大約400 pt的nag視圖高度。 但是,如果我為高度設置10000例,它將顯示所有視圖。 所以我有另一個控制器,它是_containerNavigationController的根視圖控制器,為什么我可以檢查是否隱藏了一些根視圖控制器的視圖。 因此,當高度為700時,我只看到根視圖的一半,但當高度為10000時,我可以看到整個視圖

當我按下視圖控制器A中的某個按鈕時,我設置了root

vc = (UIViewController *)[sb instantiateViewControllerWithIdentifier:@"STScheduelPlayersViewController"];

[_containerNavigationController setViewControllers:@[vc] animated:YES];

這是登錄視圖在設置rect時加載了

(lldb) po _containerNavigationController.view
<UILayoutContainerView: 0x8b3afd0; frame = (247 64; 778 777); autoresize = W+H; gestureRecognizers = <NSArray: 0x8b39350>; layer = <CALayer: 0x8b3b460>>

當我點擊按鈕時這個日志

(lldb) po _containerNavigationController.view
<UILayoutContainerView: 0x8b3afd0; frame = (247 64; 1034 521); autoresize = W+H; gestureRecognizers = <NSArray: 0x8b39350>; layer = <CALayer: 0x8b3b460>>

想知道但是autoresize mask解決了這個問題:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];

    if (self)
    {
        _containerNavigationController = [UINavigationController new];
        [_containerNavigationController.view setFrame:CGRectMake(247, 64, 778, 777)];
        _containerNavigationController.view.autoresizingMask = UIViewAutoresizingNone;
        _containerNavigationController.navigationBarHidden = YES;
    }

    return self;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM