【问题标题】:Keep Toolbar at top of UIView when using pushViewController and then popViewController?使用 pushViewController 然后 popViewController 时将工具栏保持在 UIView 的顶部?
【发布时间】:2011-04-16 11:05:30
【问题描述】:

更新:此问题的另一个解决方案是导航控制器根级别的导航栏是否可以透明或不显示。有没有办法让导航控制器根级别的导航栏透明或不显示?

我的顶级 UIView 顶部有一个带有工具栏的 NIB,工具栏下方是一个 tableView。当我在 navigationController 上使用 pushViewController 将另一个 UIViewController 推送到 navigationController 上时,工具栏被导航栏覆盖。当我将当前视图弹出回根视图时,无法看到工具栏,因为顶部有一个空白栏。现在,工具栏和 tableView 顶部之间也有大约工具栏大小的间隙。所以视图从顶部看起来像: 1) 阴影空白条, 2)关于工具栏大小的空白, 3) 表格视图

如何让顶级NIB的工具栏在使用popViewController后出现在UIView的顶部?

在顶层视图中,我实例化了一个 UINavigationController:

 self.navigationController = [[UINavigationController alloc] initWithRootViewController:ListsController];

然后在 didSelectRowAtIndexPath 中推送一个视图控制器

ItemsController * Items  = [[ItemsController alloc] 
                                         initWithNibName:@"Items" bundle:nil] ;
[self.navigationController pushViewController:Items animated:YES];

要显示初始推送视图,我执行以下操作:

UIView *navView = self.navigationController.view;
CGRect navFrame = navView.frame;
//  navFrame.origin.y -= 20;
navView.frame = navFrame;

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
UIWindow *appWindow = appDelegate.window;


[appWindow addSubview:navView];

知道如何在弹出回到顶层时不覆盖顶层工具栏吗?

【问题讨论】:

    标签: iphone navigationcontroller


    【解决方案1】:

    解决方案是使用以下命令将导航栏隐藏在根级别:

    - (void)viewWillAppear:(BOOL)animated {
    [[self navigationController] setNavigationBarHidden:YES animated:YES];
    
    [super viewWillAppear:animated];
    [self.table reloadData];
    }
    

    然后在导航堆栈的下一个较低级别,使导航栏不隐藏:

    - (void)viewWillAppear:(BOOL)animated {
    [[self navigationController] setNavigationBarHidden:NO animated:YES];
    
    [super viewWillAppear:animated];
    [self.table reloadData];
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 2015-05-07
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 2016-10-19
      • 1970-01-01
      相关资源
      最近更新 更多