我想像listview一样下拉列表,当我点击下拉按钮并使列表有一些内容.那么我选择的任何内容都将是标签的文字,任何人都可以帮助我.谢谢很多.
您可以使用弹出窗口来显示列表。在弹出窗口中,您可以创建表格视图来显示项目列表,当用户选择任何选项时,didSelectRowAtIndexPath 将被调用,通过此方法您可以发送所选值并显示在标签中。
mainviewcontroller 中的代码,您要在其中显示下拉列表。
if (m_OptionController !=nil)
{
[m_OptionController release]; m_OptionController = nil;
}
m_OptionController=[[OptionViewController alloc]init];
[m_OptionController setTarget:self andSelector:@selector(displaySelectedOption:)];
if(m_pPopOverController)
{
[m_pPopOverController dismissPopoverAnimated:YES];
[m_pPopOverController release];
m_pPopOverController=nil;
}
m_pPopOverController=[[UIPopoverController alloc]initWithContentViewController:m_OptionController];
[m_pPopOverController setPopoverContentSize:CGSizeMake(thePopOverFrame.size.width, thePopOverFrame.size.height) animated:NO];
[m_pPopOverController presentPopoverFromRect:CGRectMake(theButton.frame.origin.x,0,40,40) inView:self
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)
OptionViewController 是一个 UIViewController,它将包含 UITableView.Populate UITableView 与数据(选项列表)。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([m_Target respondsToSelector:m_Selector]) {
[m_Target performSelector:m_Selector withObject:nil];
}
}
Run Code Online (Sandbox Code Playgroud)
不要忘记通过调用此方法来设置目标,因此当用户选择任何选项时,将在您想要选择值的位置调用 mainviewcontroller 中的相应方法。
- (void)setTarget:(id)inTarget andSelector:(SEL)inSelector
{
m_Target = inTarget;
m_Selector = inSelector;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3936 次 |
| 最近记录: |