当我们在使用UISplitViewController时进入肖像模式时,它们将通过barButtonItem为我们提供。如何为barButtonItem使用customView?
我尝试了以下方式。如果我从纵向开始,它可以工作。但是,如果我去景观,当我回来时,它会崩溃。
在viewDidLoad
中UIImage *image = [UIImage imageNamed:@"home.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = CGRectMake(0, 0, 22.00, 22.00);
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(showHomeDetails) forControlEvents:UIControlEventTouchDown];
homeButton = [[UIBarButtonItem alloc] initWithCustomView:button];
[button release];
然后在willHideViewController
中barButtonItem = homeButton;
我有什么不好意思?或者有替代解决方案吗?
答案 0 :(得分:1)
在willHideViewController中完成了这样的重写,并完成了它。
UIImage *image = [UIImage imageNamed:@"news.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.bounds = CGRectMake(0, 0, image.size.width, image.size.height );
[button setImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(showSideTable) forControlEvents:UIControlEventTouchUpInside];
[barButtonItem setCustomView:button];
主要更改已删除[按钮释放]。
答案 1 :(得分:0)
我相信它应该是这样的:
UIImage *image = [UIImage imageNamed:@"home.png"];
UIImageView *imageView = [UIImageView initWithImage:image];
homeButton = [[UIBarButtonItem alloc] initWithCustomView:imageView];
[homeButton addTarget:self action:@selector(showHomeDetails)];
[homeButton setBounds:CGRectMake(0, 0, 22.00, 22.00)];
希望这能解决你的问题 jrtc27
答案 2 :(得分:0)
假设图像是您正在寻找的自定义视图:
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
[barButtonItem setImage:[UIImage imageNamed:@"awesome_menu_icon.png"]];
[[self navigationItem] setLeftBarButtonItem:barButtonItem];
}