iphone - 导航栏按钮,根据点击更改 IBAction

标签 iphone objective-c cocoa-touch uinavigationcontroller

好吧,目前我有一个导航 Controller ,带有一个可以让用户登录的右键。

但是我想将登录按钮更改为单击后注销,并且此注销按钮将调用不同的 IBAction。

帮助可视化这一点。

默认情况下,我的导航 Controller 上有一个表示登录的右键,一旦按下此登录按钮,就会按下 ibaction login:(id)sender。

我想要做的是将按钮更改为注销并在单击时调用 logout:(id)sender。

这可能吗?

谢谢。

最佳答案

您可以更改按钮按下时的操作:

- (void)login:(UIButton*)button {
    [button setTitle:@"Logout"];        
    [button setAction:@selector(logout:)];
}

- (void)logout:(UIButton*)button {
    [button setTitle:@"Login"];     
    [button setAction:@selector(login:)];
}

或者,由于该按钮位于 UINavigationBar 上,因此您可以这样做:

-(IBAction)login:(id)sender{
UIBarButtonItem *logoutButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                            target:self
                                                                            action:@selector(logout:)];
[[self navigationItem] setRightBarButtonItem:logoutButton];
[logoutButton release];
}

-(IBAction)logout:(id)sender{
UIBarButtonItem *loginButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                            target:self
                                                                            action:@selector(login:)];
[[self navigationItem] setRightBarButtonItem:loginButton];
[loginButton release];
}

关于iphone - 导航栏按钮,根据点击更改 IBAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557903/

相关文章:

javascript - 访问网站时弹出 android 或 iphone tot 下载应用程序

ios - 访问 IOS 应用程序中的设置

iphone - 如何在不移除 Round Rect Button 周围边框的情况下消除 Round Rect Button 周围的间隙?

iphone - TBXML 将复杂的 xml 解析为数组

ios - ABPeoplePickerNavigationControllerDelegate 中的 ABMultiValueIdentifier 未正确设置,这是 iOS 错误吗?

iphone - 简单的核心数据获取非常慢

iphone:如何同步 2 个 NSMutableArrays 的内容?

iphone - UIView只接受特定区域的触摸

ios - Unicode 字符串在 iOS 上不起作用

iphone - 将街道名称和城市反向地理编码为文本