【问题标题】:iOS: Set up the navigation controller to use GTScrollNavigationBariOS:设置导航控制器以使用 GTScrollNavigationBar
【发布时间】:2014-02-17 14:24:38
【问题描述】:

我正在使用 StoryBoard,我添加了一个 UITableViewController,然后将其嵌入导航栏。

现在,我想实现GTScrollNavigationBar 在我的应用程序中,在使用部分,它说:Set up the navigation controller to use GTScrollNavigationBar

我怎样才能在我的 .m 中做到这一点?

提前问好

【问题讨论】:

  • 如果我复制并粘贴您提供的链接中的“使用”部分,您是否会将我的答案标记为已接受?在您的问题中的链接中还有一个示例项目,应该可以准确地向您展示如何使用它。

标签: ios ios7 storyboard uinavigationbar


【解决方案1】:

设置导航控制器以使用 GTScrollNavigationBar:

#import "GTScrollNavigationBar.h"

self.navController = [[UINavigationController alloc] initWithNavigationBarClass:  
    [GTScrollNavigationBar class] toolbarClass:nil];
[self.navController setViewControllers:@[self.mainViewController] animated:NO];

在具有 UIScrollView 的视图控制器中,例如UITableViewController,将UIScrollView对象设置为viewWillAppear中的GTScrollNavigationBar:by:

self.navigationController.scrollNavigationBar.scrollView = self.tableView;

要取消关注 scrollView,只需将 scrollView 属性设置为 nil

self.navigationController.scrollNavigationBar.scrollView = nil;

在视图控制器中实现scrollViewDidScrollToTop:重置导航栏的位置

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {
    [self.navigationController.scrollNavigationBar resetToDefaultPosition:YES];
}

Source.

【讨论】:

  • 好吧,我实际上在故事板中的 viewController 中添加了导航栏,所以当我 COPY 上面的代码时,Xcode 给我一个警告“不兼容的指针类型从 'UINavigationController' 分配给 'UINavigationItem'”跨度>
  • 我也不想从 appdelegate 分配导航栏。
  • 您尝试过的内容不应发布在对答案的评论中。它应该是原始问题的一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 2015-05-01
  • 2014-03-09
  • 2012-04-16
  • 1970-01-01
  • 2015-01-16
相关资源
最近更新 更多