如何使用View Deck的导航栏推送视图

时间:2012-12-26 02:41:47

标签: objective-c ios xcode viewdeck

Viewdeck遇到了一个小问题。

我想用导航栏推送我的导航视图。我现在正在做(下面的代码)但它没有导航栏就推动了。

    [self.viewDeckController closeLeftViewBouncing:^(IIViewDeckController *controller)
     {  
    DataViewController *DataController = [[DataViewController
                                           alloc]  initWithNibName:@"DataViewController" bundle:nil];
    DataController.modalPresentationStyle = UIModalPresentationFormSheet;


    DataController.ID = @"hello";

     self.viewDeckController.centerController = DataController;
}];

也尝试过:

        UIViewController *viewController = [[DataViewController alloc] init];
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
        navigationController.modalPresentationStyle = UIModalPresentationFormSheet;


            DataViewController *DataController = [[DataViewController
                                                   alloc]  initWithNibName:@"DataViewController" bundle:nil];
            DataController.modalPresentationStyle = UIModalPresentationFormSheet;


            DataController.ID = @"hello";

             self.viewDeckController.centerController = DataController;

2 个答案:

答案 0 :(得分:5)

你的第一个代码块正朝着正确的方向前进,但是你没有使用实际的UINavigationController。我将假设你的UIViewController类是DataViewController,所以下面应该这样做:

DataViewController *dataController = [[DataViewController alloc] initWithNibName:@"DataViewController" bundle:nil];
UINavigationController *dataNavigationController = [[UINavigationController alloc] initWithRootViewController:dataController];

传递你想要的任何数据(我看到你将ID属性设置为@“你好” - 我会把它留下来)。然后,在closeLeftViewBouncing中,只需设置:

[controller setCenterController:dataNavigationController];

答案 1 :(得分:0)

当您将视图控制器推送到导航控制器时,它总是有一个导航栏。但是您没有使用您的代码推动视图控制器。
在我的Objective-c字帖中,我写了一个小程序,说明了如何做到这一点:

  1. 创建导航控制器并将其设置为窗口的根视图控制器,然后将第一个视图控制器添加到导航控制器;
  2. 以一种可以更改视图的方式将一个条形按钮项添加到视图控制器的导航项中。该导航项应具有推动另一个视图控制器的操作。