工具栏作为NavigationController中的子导航栏

时间:2014-12-06 13:27:37

标签: ios objective-c xcode

我正在使用NavigationController构建iOS应用。但是,在这个应用程序中,我需要一个子导航栏,它需要在每个视图中。我最初使用每个视图中的工具栏实现了这一点。但是,当新视图滑入时,会发生的情况是工具栏也会滑入。我需要工具栏是持久的,就像导航栏一样。什么是解决这个问题的最佳方法?

我最好的猜测是将[self.navigationController setToolbarHidden:YES animated:YES];设置为YES,然后以某种方式将其定位在导航栏下方...

这是我以前在每个viewcontroller中执行的操作:

@interface TableViewController ()

@property (weak, nonatomic) IBOutlet UIToolbar *mainToolBar;

@end

@implementation TableViewController

- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:YES animated:YES];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.title = @"TV Shows";
    [self addRightMenuButton];

    [self loadNinjas];

    self.mainToolBar.barTintColor = [UIColor whiteColor];
    self.mainToolBar.layer.shadowColor = [[UIColor blackColor] CGColor];
    self.mainToolBar.layer.shadowOffset = CGSizeMake(1.0f, 1.0f);
    self.mainToolBar.layer.shadowRadius = 3.0f;
    self.mainToolBar.layer.shadowOpacity = 1.0f;

    self.tableView.dataSource=self;
    self.tableView.delegate=self;
}

1 个答案:

答案 0 :(得分:0)

我可以考虑尝试三种不同的方法:

  • 创建一个较高的导航栏子类,底部带有辅助工具栏。将其设置为导航控制器的导航栏。我已经尝试了几次以达到不同的目的而且没有成功,但也许它会适合你。

  • 坚持你正在做的事情,每个VC上的第二个工具栏,并使用自定义VC转换或演示控制器使其看起来像工具栏不移动而其余的内容是。

  • 不要这样做。我无法真正看到双导航对于iPhone应用程序有用的方式。