我找了又找,还是找不到问题的答案。
我有一个 TableView Controller ,我需要导航栏始终在屏幕顶部可见,而不是随着 TableView 向上滚动。我看到的解决方案建议我调整内容插图,将其设置为半透明等。这些都不起作用。如果您能提供任何解决方案/建议,我将不胜感激!
-(无效)viewDidLoad { [ super viewDidLoad];
self.navigationController.navigationBarHidden = NO;
self.navigationController.navigationBar.translucent=YES;
self.tableView.contentInset = UIEdgeInsetsMake(44,0,0,0);
self.automaticallyAdjustsScrollViewInsets = NO;
self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
if ([UIScreen mainScreen].scale > 1.0)
{
[self->btnBack setImage:[UIImage imageNamed:@"back_button@2x.png"]];
}
else
{
[self->btnBack setImage:[UIImage imageNamed:@"back_button.png"]];
}
self.tableView.separatorColor = [UIColor colorWithRed:69/255.0 green:189/255.0 blue:150/255.0 alpha:1.0];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"nav_bar_bg.png"] forBarMetrics:UIBarMetricsDefault];
NSLog(@"Loading up coupons");
MWRAppDelegate* appDelegate = [UIApplication sharedApplication].delegate;
if([g_categoryName isEqualToString: @"All"]){
NSMutableArray *coupons = [appDelegate getAllCoupons];
NSMutableArray *contests = [appDelegate getAllContests];
NSArray *newArray=[contests arrayByAddingObjectsFromArray:coupons];
self.fetchedRecordsArray = newArray;
}
else {
NSMutableArray *coupons = [appDelegate getCatCoupons];
NSMutableArray *contests = [appDelegate getAllContests];
NSArray *newArray=[contests arrayByAddingObjectsFromArray:coupons];
self.fetchedRecordsArray = newArray;
}
[self.tableView reloadData];
最佳答案
您可以尝试将 UITableViewController 嵌入到 UINavigationControler 中。
使用 Storyboard:选择您的 UITableViewController,按编辑器 > 嵌入 > 导航 Controller 。
或者通过代码,创建一个 UINavigationController 并将您的 tableviewcontroller 设置为它的 rootviewcontroller :
UINavigationController* aNavigationController = [[UINavigationController alloc] initWithRootViewController:yourTableViewController];
并呈现一个 NavigationController 而不是呈现你的 TableViewController ;-)
ps:如果你的 TableViewController 没有嵌入到导航 Controller 中,那么调用 self.navigationController 将只返回 nil 并且对它的任何操作也将是 nil。
关于iOS:使导航栏在 UITableViewController 中始终可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26855658/