首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >左UIViewController的ViewDeck施胶

左UIViewController的ViewDeck施胶
EN

Stack Overflow用户
提问于 2013-06-19 18:07:08
回答 1查看 1.8K关注 0票数 0

我正在使用ViewDeck为我的iPad应用程序中的滑动UI提供动力,但我遇到了一些问题。

我想将leftViewController大小调整到一个特定的大小,而不考虑旋转。我必须设置ViewDeck的代码如下所示,哦,我正在使用故事板。

代码语言:javascript
复制
        - (id)initWithCoder:(NSCoder *)aDecoder
    {
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"leftViewController"];
        JWTimerGroupsViewController *timerGroupsViewController = navigationController.viewControllers[0];

        IISideController *constrainedSizeLeftViewController = [[IISideController alloc] initWithViewController:navigationController];

        JWMainTableViewController *middleViewController = (JWMainTableViewController *)[storyboard instantiateViewControllerWithIdentifier:@"middleViewController"];    
        [timerGroupsViewController setDelegate:middleViewController];
        self = [super initWithCenterViewController:middleViewController leftViewController:constrainedSizeLeftViewController];
        self.centerhiddenInteractivity = IIViewDeckCenterHiddenNotUserInteractiveWithTapToClose;

        /* This below IS NOT the size of the left view controller? Just seems odd that it isn't */
        [super setLeftSize:200];  
        [super setSizeMode:IIViewDeckViewSizeMode];

        if (self) {
            // Add any extra init code here
        }

        return self;
    }

setLeftSize似乎设置了topViewControllers宽度?这使得左视图控制器的大小在旋转时不一致。

另外,我看到了一些可怕的块状阴影,当topVC被打开,然后设备被旋转。

是否有可能修正左边ViewController的大小和在ViewDeck中最高VC打开的数量?

编辑

我刚刚找到了对这种方法的参考:

代码语言:javascript
复制
    IISideController *constrainedSizeLeftViewController = [[IISideController alloc] initWithViewController:navigationController constrained:200];

它将左视图控制器约束为特定值。但是现在仍然没有办法让顶级的VC开放到那个宽度吗?!

EN

回答 1

Stack Overflow用户

发布于 2013-12-24 20:04:31

您可以尝试这里建议的方法:https://stackoverflow.com/a/16484446/928209

基本上是:

  1. 用代码实例化您的IIViewDeckController (而不是从故事板)
  2. 将视图甲板控制器的中心视图设置为rootViewController,从您的故事板和侧视图到您需要的任何视图。
  3. 将应用程序的rootViewController设置为视图甲板控制器。

这是我的代码:

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    UIStoryboard* storyboard = self.window.rootViewController.storyboard; 

    UINavigationController* leftSideVC = (UINavigationController*)[storyboard instantiateViewControllerWithIdentifier:@"tableNavController"];
    UINavigationController* centerNavVC = (UINavigationController*) self.window.rootViewController;

    IIViewDeckController* viewDeckController =  [[IIViewDeckController alloc] initWithCenterViewController:centerNavVC leftViewController:leftSideVC rightViewController:nil];
    self.window.rootViewController = viewDeckController;
    viewDeckController.resizesCenterView = YES;
    viewDeckController.sizeMode = IIViewDeckViewSizeMode;

    [self.window makeKeyAndVisible];
    return YES;
}

当我在加载我的故事板后尝试在我的IIViewDeckController中编写这种方法时,我发现我在视图大小方面的许多问题消失了。例如,在此之前,为了使侧视图成为固定宽度,我必须将leftSize属性设置为(screenWidth - side ),而不是我想要的实际“宽度”。一旦我让IIViewDeckController成为应用程序的rootViewController,不是通过故事板,而是在我的AppDelegate中的代码中,我可以设置固定的大小为“宽度”,它正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17198244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档