iOS - UIToolbar无法在h文件中运行

时间:2011-08-25 19:39:12

标签: objective-c ios

我是开发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东西): .m

3 个答案:

答案 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