簡體   English   中英

iOS:使導航欄在UITableViewController中始終可見

[英]iOS: Make navigation bar always visible in UITableViewController

我已經搜索了並且一直無法找到我的問題的答案。

我有一個Table View Controller,並且我需要導航欄始終在屏幕頂部可見,並且不能與表格視圖一起向上滾動。 我見過一些解決方案,建議我調整內容插圖,將其設置為半透明等。這些都不起作用。 如果您能提供任何解決方案/建議,我將不勝感激!

-(void)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中。

使用情節提要:選擇您的UITableViewController,按編輯器>嵌入>導航控制器。

或者通過代碼,創建一個UINavigationController並將您的tableviewcontroller設置為其rootviewcontroller:

UINavigationController* aNavigationController = [[UINavigationController alloc] initWithRootViewController:yourTableViewController];

並呈現aNavigationController而不是呈現yourTableViewController ;-)

ps:如果yourTableViewController沒有嵌入在導航控制器中,則調用self.navigationController只會返回nil,對其執行的任何操作也將為nil。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM