我正在尝试使用以下命令将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定义其他
用于工具栏和的初始化方法和属性
导航栏。