我正在尝试使用以下命令将UIButton添加到UINavigationBar中:

 UIButton * addSource = [UIButton buttonWithType:UIButtonTypeCustom];
    [addSource setBackgroundImage:[UIImage imageNamed:@"addsource.png"] forState:UIControlStateNormal];
    [addSource addTarget: self action:@selector(addSourceButton:) forControlEvents:UIControlEventTouchUpInside];
    [addSource setFrame: CGRectMake(115, 5, 32, 32)];
    [navBar addSubview:addSource];
    [addSource release];


但是,这行不通吗?当我注释掉setBackgroundImage并将其更改为setBackgroundColor时,我可以看到它,但似乎无法单击它(即,不会触发设置为的动作)。任何想法?将其更改为UIImageView而不是UIButton也可以,我可以看到图像很好,因此可以澄清该图像是否存在。

最佳答案

您不能将UIButton添加到UINavigationBar。使用UIBarButtonItem

从苹果文档:


  与其他类型的视图不同,
  您不直接将子视图添加到导航栏中。相反,您使用
  导航项(UINavigationItem类的实例)
  指定要显示的按钮或自定义视图。


和:


  栏按钮项是专门用于放置在UIToolbar上的按钮
  或UINavigationBar对象。它从其继承了基本的按钮行为
  抽象超类UIBarItem。 UIBarButtonItem定义其他
  用于工具栏和的初始化方法和属性
  导航栏。

07-27 22:25