代码之家  ›  专栏  ›  技术社区  ›  chilitechno.com

单击按钮时,UIBarButtonItem会使iphone应用程序崩溃

  •  2
  • chilitechno.com  · 技术社区  · 16 年前
    UIBarButtonItem *rButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:NULL];
    
    rButton.action = @selector(refreshAction);
    self.navigationItem.rightBarButtonItem = rButton;
    [rButton release];
    

    - (void)refreshAction {
        NSLog(@"refreshAction");
    }
    

    3 回复  |  直到 11 年前
        1
  •  1
  •   chilitechno.com    16 年前

    像往常一样,内存管理是罪魁祸首。从navigationController加载tableViewController:

    NearbyTableViewController *tableController = [[[NearbyTableViewController alloc] initWithNibName:@"NearbyTableViewController" bundle:nil] autorelease];
    self.nearbyTableController = tableController;   

    [self pushViewController:self.nearbyTableController animated:YES];
    [tableController release];
    

    删除该行[tableController release]解决了问题

        2
  •  0
  •   Daniel Dickison    16 年前

    @selector(refreshAction)

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

        3
  •  0
  •   mmc    16 年前

    我并不完全确定为什么你的代码不起作用,但直接在构造函数中设置选择器确实有效:

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