Objective c 使用分段控件刷新UInavigationbar

Objective c 使用分段控件刷新UInavigationbar,objective-c,ios,uiview,uinavigationcontroller,uisegmentedcontrol,Objective C,Ios,Uiview,Uinavigationcontroller,Uisegmentedcontrol,我有一个使用分段控件更改的登录/注册页面。登录页面是通用页面,self.title=@“login”和bar item=login可发送登录请求。但是,当用户选择“注册分段”控件时,我想刷新导航栏以显示self.title=@“注册”和bar按钮=注册以发送注册请求。我在分段控件中使用了以下代码: if (segmentedControl.selectedSegmentIndex == 0) { UIBarButtonItem * sortButton = [[UIBa

我有一个使用分段控件更改的登录/注册页面。登录页面是通用页面,self.title=@“login”和bar item=login可发送登录请求。但是,当用户选择“注册分段”控件时,我想刷新导航栏以显示self.title=@“注册”和bar按钮=注册以发送注册请求。我在分段控件中使用了以下代码:

if (segmentedControl.selectedSegmentIndex == 0) 
    {
        UIBarButtonItem * sortButton = [[UIBarButtonItem alloc] initWithTitle:@"Login" style:UIBarButtonItemStyleBordered target:self action:@selector(LoginButton)];

        self.navigationItem.rightBarButtonItem = sortButton;
        [sortButton release];

        self.title = @"Login";
    }
    else if (segmentedControl.selectedSegmentIndex == 1)
    {
        UIBarButtonItem * sortButton = [[UIBarButtonItem alloc] initWithTitle:@"Submit" style:UIBarButtonItemStyleBordered target:self action:@selector(Submit)];

        self.navigationItem.rightBarButtonItem = sortButton;
        [sortButton release];

        self.title = @"Submit";

    }
我也有分段控制设置和工作:

- (IBAction)segmentSwitch:(id)sender 
{
    UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;

    if (selectedSegment == 0) 
    {
        //toggle the correct view to be visible
        [firstView setHidden:NO];
        [secondView setHidden:YES];
    }
    else
    {
        //toggle the correct view to be visible
        [firstView setHidden:YES];
        [secondView setHidden:NO];
    }
}

安迪的帮助将不胜感激。谢谢。

假设第一个代码块位于
viewDidLoad
方法中,您需要更改
UIViewController
,以便在
UISegmentedControl
的值更改时更改标题和按钮。换句话说,尝试将第一块代码移动到
分段开关:
方法


代码不工作的原因是
viewDidLoad
只被调用一次,因此第一个代码块只执行一次,而您希望每次用户选择新的段时都执行它。

第一个代码块在哪里?是否在
UISegmentedControl
s目标中?代码的第一段是视图中的did加载。