簡體   English   中英

向導航欄添加刷新按鈕

[英]Add Refresh Button to Navigation Bar

大家好,林先生在嘗試獲取此導航欄以包含“刷新按鈕”時費時費力,如果您可以查看下面的代碼,然后提供一些幫助,這是我的原始代碼以及為刷新而找到的UIBarbutton代碼段Google上另一個用戶項目的按鈕。 我正在遇到以下錯誤:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.tableView setBackgroundView:nil];
    self.tableView.backgroundColor = [ColorHelper charcoalBackgroundImage];
    UIBarButtonItem *refresh = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];
    self.navigationItem.leftBarButtonItem = refresh;
    // [button release]; remove this line if you're using ARC
}
- (void) refresh
{

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.tableView setBackgroundView:nil];
    self.tableView.backgroundColor = [ColorHelper charcoalBackgroundImage];

    UIBarButtonItem *button = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];
    self.navigationItem.rightBarButtonItem = button;
}

將此方法寫為此,因為您在調用中傳遞UIBarButton對象。

- (void) refresh:(id)sender
{

}

要么

UIBarButtonItem *button = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh)];

可能這段代碼會幫助您...

UIImage *reloadImage = [UIImage imageNamed:@"reload.png"];
UIButton *btnReload = [UIButton buttonWithType:UIButtonTypeCustom];
btnReload.bounds = CGRectMake( 10, 0, reloadImage.size.width, reloadImage.size.height );
[btnReload addTarget:self action:@selector(reloadData:) forControlEvents:UIControlEventTouchUpInside];
[btnReload setImage:reloadImage forState:UIControlStateNormal];
UIBarButtonItem *reloadButton = [[UIBarButtonItem alloc] initWithCustomView:btnReload];
self.navigationItem.leftBarButtonItem = reloadButton;
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.tableView setBackgroundView:nil];
    self.tableView.backgroundColor = [ColorHelper charcoalBackgroundImage];

    UIBarButtonItem *button = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];
    self.navigationItem.rightBarButtonItem = button;
    // [button release]; remove this line if you're using ARC
}

看來您已經在使用ARC。 因此,您應該刪除[button release] 你的書正在走向歷史。

您的動作選擇器和實際方法不同。 一種是refresh:另一種是refresh

更改選擇器以匹配實際方法。

@selector(refresh)

快速4

let refreshButton = UIBarButtonItem(barButtonSystemItem: .refresh, target: self, action: #selector(refresh))
self.navigationItem.rightBarButtonItem = refreshButton

@objc func refresh() {

}

暫無
暫無

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

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