Обновление UInavigationbar с сегментированным управлением - PullRequest
0 голосов
/ 09 октября 2011

У меня есть страница входа / регистрации, которая изменяется с помощью сегментированного элемента управления.Страница входа в систему является общей, и self.title = @ "login" и элемент панели = login для отправки запроса на вход.Однако, когда пользователь выбрал сегментированный элемент управления подпиской, я хочу обновить панель навигации, чтобы отобразить self.title = @ "Sign Up" и кнопку панели = зарегистрироваться, чтобы отправить запрос на регистрацию.Я использовал этот код в сегментированном элементе управления:

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];
    }
}

Помощь Энди приветствуется.Спасибо.

1 Ответ

1 голос
/ 09 октября 2011

Предполагая, что первый блок кода находится в методе viewDidLoad, вам необходимо изменить UIViewController так, чтобы заголовок и кнопка изменялись при изменении значения UISegmentedControl. Другими словами, попробуйте переместить первый блок кода в метод segmentSwitch:.

Причина, по которой ваш код не работает, заключается в том, что viewDidLoad вызывается только один раз, и поэтому первый блок кода выполняется только один раз, а вы хотите, чтобы он выполнялся каждый раз, когда пользователь выбирает новый сегмент.

...