我有一个使用分段控件更改的登录/注册页面。登录页面是通用的,self.title = @“login”,bar项=登录以发送登录请求。但是,当用户选择了注册分段控件时,我想刷新导航栏以显示self.title = @“注册”,栏按钮=注册以发送注册请求。我在分段控件中使用了这段代码:
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];
}
}
安迪帮助将不胜感激。感谢。
答案 0 :(得分:1)
假设第一个代码块位于viewDidLoad
方法中,您需要更改UIViewController
,以便在UISegmentedControl
的值时更改标题和按钮变化。换句话说,尝试将第一个代码块移动到segmentSwitch:
方法。
您的代码无效的原因是因为viewDidLoad
只被调用一次,因此第一个代码块只执行一次,而您希望每次用户选择一个新段时执行它。