2011-08-28 87 views
2

我有一个导航栏,右侧有三个按钮(导航箭头+共享按钮)。在Iphone模拟器上,我可以很好地看到它们,并且它们工作得很完美。当我在真正的Iphone 4设备上安装应用程序时,按钮不会显示! (我的模拟器是iPhone 3,如果它metter)。 我的代码是:没有在真实设备上显示的导航栏按钮

UIToolbar *tools = [[UIToolbar alloc] 
        initWithFrame:CGRectMake(0, 0, 70.0f,  44.01f)]; // 44.01 shifts it up 1px for some reason 
tools.clearsContextBeforeDrawing = NO; 
tools.clipsToBounds = NO; 
tools.tintColor = [UIColor colorWithWhite:0.305f alpha:0.0f]; // closest I could get by eye to black, translucent style. 
// anyone know how to get it perfect? 
tools.barStyle = -1; // clear background 


NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:3]; 

// Create a standard refresh button. 
UIBarButtonItem *bi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"share.png"] style:UIBarButtonItemStylePlain target:self action:@selector(shareClicked)]; 
//initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)]; 
[buttons addObject:bi]; 
[bi release]; 

// Create a spacer. 
bi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scroll left.png"] style:UIBarButtonItemStylePlain target:self action:@selector(upClicked)]; 
//bi.width = 12.0f; 
[buttons addObject:bi]; 
[bi release]; 

// Add profile button. 
bi = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scroll right.png"] style:UIBarButtonItemStylePlain target:self action:@selector(downClicked)]; 
//bi.style = UIBarButtonItemStyleBordered; 
[buttons addObject:bi]; 
[bi release]; 

// Add buttons to toolbar and toolbar to nav bar. 
[tools setItems:buttons animated:NO]; 
[buttons release]; 
UIBarButtonItem *twoButtons = [[UIBarButtonItem alloc] initWithCustomView:tools]; 
[tools release]; 
self.navigationItem.rightBarButtonItem = twoButtons; 
[twoButtons release]; 
+0

你有没有这样的运气? – stan229

+0

是的,打开图像,然后保存它(“另存为”)解决了我的问题 –

回答

5

我有一个类似的问题。

在我的情况下,.png文件已从项目和项目的工作目录中删除 - 出于某种原因。因此它不再包含在复制包资源中。

奇怪的是,显然它仍然在模拟器上。就我而言,它甚至还在调试设备上。但是当为临时分发构建一个boulde时,它不在其中。因此,完整按钮(导航栏中的栏按钮项)没有出现。用户无法调用与其关联的操作。

首先我从模拟器中删除应用程序。我尝试了两种方法,从模拟器的gui和文件系统/用户//库/应用程序支持/ iPhone模拟器/ 5.0 /应用程序/(应用程序ID)/ ...擦除它。在这两种情况下,运行simulatore上的应用程序都会重新安装未使用的.png文件和其他许多从我的xcode项目中有意删除的文件。

但是,最终的解决方案是再次在xcode项目中包含png文件并将其分配给所有相关目标。在我的情况下,我正要改变图形,所以我包含了新文件而不是旧文件。但我相信这个细节并不重要。

简短版本:1.如果你的PNG文件仍然是项目的一部分,那么删除它。从项目文件夹中删除ist也只是为了保存。 2.将png文件重新包含到项目中。 3.创建你的版本,并尝试在一个空的设备上。

+0

刚刚遇到完全相同的问题,调试版本可以找到不在项目中的PNG,但分发版本不能。谢谢,根本没有朝这个方向看。 – user1055568

+0

是的,在我真正知道它是什么之前,它也让我疯了。 –

+0

删除图像并使用其他名称保存解决了我的问题。感谢您在正确的道路上指导我。 –

1

也遇到了这个问题,其中XCode模拟器显示自定义导航右键栏按钮,但设备没有。该错误是自定义按钮的弱属性IBOutlet。检查你的IBOutlet @property。在我的情况下,解决方法是简单地将IBOutlet更改为:@property(nonatomic,retain)IBOutlet UIButton * customBtn;

0

在我的情况下,我不知何故删除了对我的自定义图像的引用。从图像列表中再次选择该名称可以解决问题。

enter image description here