设置从故事板加载的UINavigationController的宽度

时间:2013-05-15 08:56:31

标签: uiview uinavigationcontroller storyboard

我正在为一个iPad应用程序使用ECSlidingViewController,我正在尝试将UINavigationController作为主页面(菜单),它将显示在主UIViewController的左侧。

要做到这一点,UINavigationCOntroller需要一个特定的宽度,否则它将达到全宽度,这是不希望的。

我正在使用故事板并加载viewControllers,如下所示:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Setup the view controllers
    self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainTop"];    
    self.underLeftViewController  = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
}

如何将此宽度限制为320px?我知道我必须设置框架,它只是在哪里以及如何。

1 个答案:

答案 0 :(得分:0)

一旦我想到这一点,这实际上很容易。我确保我的菜单viewcontroller嵌入了故事板中的UINavigationController。从菜单VC中删除了storyboardID并将其添加到UINavigationController。

然后我将UINavigationController子类化,并将以下内容添加到viewDidLoad方法中:

- (void)viewDidLoad
{
    [super viewDidLoad]; 

    [self.slidingViewController setAnchorRightRevealAmount:320.0f];
    self.slidingViewController.underLeftWidthLayout = ECFixedRevealWidth;

}

从原始菜单VC viewDidLoad方法中删除该代码。读取ECSlidingViewController的文档,添加ECFixedReveal将调整VC的大小以匹配setAnchorRightRevealAmount值。

现在我在左侧显示的菜单中有一个导航控制器。