向UINavigationBar(iPhone)添加左键

时间:2009-02-19 16:03:05

标签: objective-c iphone uinavigationbar navigation-style

我创建了一个新的基于导航的iPhone应用程序。我将它添加到RootViewController。

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] init];
self.navigationItem.leftBarButtonItem = addButton;
self.navigationItem.leftBarButtonItem.enabled = YES;
}

但是没有显示左按钮。有什么我需要做的吗?

3 个答案:

答案 0 :(得分:54)

您没有定义按钮实际执行的操作。这是我的应用程序中的一行:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEdit:)];

cancelEdit:,选择器,在当前类(self)中,定义为:

- (void) cancelEdit: (id) sender;

答案 1 :(得分:14)

实际上还有另一个答案,这里没有列出,但在许多情况下可能非常有用。 如果您do not want to use UINavigationController,则self.navigationItem不适合您。

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"imageName"] style:UIBarButtonItemStyleBordered target:self action:@selector(action:)];
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Bar Title"];
navigationItem.leftBarButtonItem = barButton;
[navigationBar pushNavigationItem:navigationItem animated:NO];

在使用条形和按钮创建轻量级UIViewController时,您可能需要这样做,但不希望导航开销。

答案 2 :(得分:11)

关于这个问题:

  

太棒了,谢谢。你在哪里找到的   各种选择器?文件   对此非常模糊。我定义了一个   实例方法并将其作为   选择器,但它从未执行过。   我想在详细视图中滑动   单击按钮。 - 4thSpace 2月   19日16:19

我去了需要更多信息的地方,然后按下转义(Esc)键。所以,在这个例子中:

...(beginning of line)... @selector(Place Cursor Here, press Esc) ...

将显示可用选择器的列表。对于Microsoft程序员来说,这就像Intellisense一样,但是你必须用Esc来询问它(它不会像在Visual Studio中那样自动出现)。实际上,当你开始输入时,XCode会创建你想要创建的大部分内容,当你发现Tab键是你的朋友时,它确实很有用。 (嗯......这是我的朋友......我拥有孤独的生活)

现在,如果您需要自己的选择器,可以将标签放在那里(例如 mySelector ),然后在代码的下方进行构建:

- (IBAction)mySelector:(id)sender {
NSLog(@"You touched me THERE!");
}

此外,在标题(.h)文件中,请务必添加相应的:

-(IBAction) mySelector:(id)sender;