我是开发iOS应用的新手。我目前正在制作一个更改nib文件的应用程序。
但是,在使用XIB用户界面创建新的UIViewController子类之后,我无法使UIToolbar IBOutlet工作。
这可能听起来很愚蠢但是“UIToolbar”在头文件(.h)中不会变成粉红色/紫色:
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;
.m:
中的“_toolbar”也不是蓝色/绿色@synthesize toolbar = _toolbar;
这导致我使用UIToolbar的问题。
这是我的.h代码:
#import <UIKit/UIKit.h>
@interface pedestrians : UIViewController;
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;
@end
而对于.m:
#import "pedestrians.h"
@implementation pedestrians
@synthesize toolbar = _toolbar;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}
@end
任何帮助都会很棒。感谢。
编辑:
只是试图像这样添加一个UIBar按钮(没有拿起任何UI东西):
答案 0 :(得分:1)
您编写的代码创建了两个与工具栏相关的内容:名为_toolbar的实例变量(来自synthesize语句)和self.toolbar中的访问器。当没有这样的东西时,你正试图使用一个名为“toolbar”的实例变量。使用_toolbar,或使用self.toolbar。优选后者,因为它保留了键值观察功能并允许更好的继承行为。
答案 1 :(得分:0)
该文件中没有名为toolbar
的实例变量。使用@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;
不会创建实例变量。您需要在viewDidLoad中访问self.toolbar
或最好是_toolbar
。
答案 2 :(得分:-1)
我认为你不能用分号结束@interface行。你能改变你的.h文件代码,如下所示
@interface pedestrians : UIViewController {
}
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;
@end