我在RootViewController中定制了导航栏的背景(只是代码的一部分)
[navBar insertSubview:customBack atIndex:0];
我推送detailViewController并将活动指示符添加为rightBarButtonItem
UIActivityIndicatorView *actInd = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
self.activityIndicator = actInd;
[actInd release];
UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithCustomView:self.activityIndicator];
[self.navigationItem setRightBarButtonItem:barButton];
[barButton release];
问题是该指标不可见,但没有自定义背景,它可以正常工作。
答案 0 :(得分:2)
我认为你可以更好地改变你的navigationBar背景。创建UINavigationBar
的子类并添加:
- (void)drawRect:(CGRect)rect {
UIImage * image = [UIImage imageNamed:@"MyNavigationBarBackground.png"];
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextScaleCTM(ctx, 1.0, -1.0); // Otherwise the image is drawn upside-down
CGContextDrawTiledImage(ctx, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
}
我这样做,我从不在任何按钮上添加问题:)
答案 1 :(得分:1)
Zoleas有正确的想法。如果您没有或不能使用子类,我认为您的问题是您在索引0处添加子视图,因此它位于导航栏中的其他视图之上,它可能隐藏了您的按钮。
答案 2 :(得分:0)
使用以下方式设置rightBarButtonItem
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@“Exit”style:UIBarButtonItemStylePlain target:self action:@selector(cancel)];
尝试此操作并检查背景位置
答案 3 :(得分:0)
活动指示器就在那里它没有被激活。尝试像这样动画:
[actInd startAnimating];
或者,如果您想让它保持可见,请设置hideWhenStopped
属性,如下所示:
actInd.hidesWhenStopped = NO;
答案 4 :(得分:0)
您是否尝试更改UIActivityIndicatorView的来源?
或者在UIView中创建它并将此UIView添加到UIBarButtonItem。
我认为问题可能是元素的框架。
答案 5 :(得分:0)
通过这种方式,您可以解决问题: 创建活动指示器并添加到view1中 现在这个view1在这个view1的帮助下添加或创建导航栏。现在,当view1自动可见时,您将能够看到加载指示器。 只是疯狂地试试这个。