【发布时间】:2013-03-04 10:28:06
【问题描述】:
我正在尝试以编程方式将UISegmentedControl 添加为UINavigationController 中的titleView。但它没有出现。经过进一步调查,我发现如果根据Apple docs 未将leftBarButtonItem 设置为nil,则titleView 属性将被忽略。所以我将它设置为nil,但分段控件仍然没有出现!
下面是我的代码。
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.leftBarButtonItem = nil;
UISegmentedControl *statFilter = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Personnal", @"Department", @"Company", nil]];
[statFilter setSegmentedControlStyle:UISegmentedControlStyleBar];
self.navigationItem.titleView = statFilter;
}
我该怎么办?我在这里错过了什么?
谢谢。
编辑:
感谢所有回复。但是,它们都不适合我,所以我进行了更深入的研究。这一定是我布置申请的方式。我可能应该早点提到这一点。道歉。
我正在创建的是一个 Storyboard 应用程序。主控制器是UITabBarController。单击某个选项卡时,我想显示UITableViewController。由于您无法在UITableViewController 中显示导航栏,我发现我必须添加UINavigationController 并在其中实现UITableViewController。这就是我的应用的基本外观,
仪表板视图控制器连接到一个继承自 UINavigationController 的类
班级。也许这就是问题所在?
因为我刚刚创建了一个小型测试应用程序,所以将 UIViewController 嵌入到 UINavigationController 中,并在 UIViewController 的 ViewDidLoad 中编写了我在上面的原始问题中发布的代码,并显示了分段控件正好。现在我不知道如何在我的主应用程序中做同样的事情,因为没有其他视图控制器或任何连接到导航控制器的东西。
对不起,如果我让事情变得更糟。如果有什么不清楚的地方请评论。
【问题讨论】:
-
首先,您可以将
UINavigationBar与UITableViewController结合使用。您的UITabBarController需要包含UINavigationControllers,有关更多信息,请参阅stackoverflow.com/questions/2339177/…
标签: ios objective-c uinavigationcontroller uisegmentedcontrol titleview