3

我正在尝试添加一个UISegmentedControl显示在视图底部的工具栏。我在一个UITableViewController,它嵌入在一个导航控制器中,该控制器嵌入在标签栏控制器中。通常钻取东西。我希望这个工具栏只出现在这个特定的选项卡视图中。我使用故事板。

我尝试在 IB(情节提要)中创建分段控件,配置其项目并将其放置在 viewcontroller 目录中(情节提要中 viewcontroller 下方的灰色条)

故事板

将此分段控件的引用出口添加到我的 viewcontroller.h 然后取消隐藏导航控制器工具栏并尝试添加此项目

self.navigationController.toolbarHidden = NO;

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:myOutletSegmentedControl];
self.navigationController.toolbar.items = [NSArray arrayWithObjects:segmentBarItem, nil];

所以我myOutletSegmentedControl的未初始化,即使我在 IB 中完全配置了它。所以以编程方式尝试:

self.navigationController.toolbarHidden = NO;

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:
                                        [NSArray arrayWithObjects:@"a-b",@"b-a",nil]];

[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
segmentedControl.frame = self.navigationController.toolbar.frame;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.momentary = NO;

UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl];
self.navigationController.toolbar.items = [NSArray arrayWithObjects:segmentBarItem, nil];

现在在底部有一个工具栏但没有项目..

我什至尝试在 IB 中创建整个工具栏 -> 子按钮 -> 子分段控件并将其输出,然后执行以下操作:

 self.navigationController.toolbar = myNewOutletToolbar;

还是不行。我确实更喜欢使用故事板/IB 来创建我的 UI,但我正在努力解决它......

4

0 回答 0