【发布时间】:2014-05-16 21:34:06
【问题描述】:
我在 iOS7 SDK 上以编程方式创建了一个基本应用程序:
- 创建了两个 UINavigationController
- 为每个人添加了一个视图
- 创建了一个包含两个项目的 UITabBarController
- 将每个 UINavigationController 添加到其各自的 UITabBarController
一切正常,一切都以编程方式完成。我的项目只包含一个简单的窗口应用程序模板,没有任何 xib 或故事板,一切都在我的 AppDelegate.m 的 application didFinishLaunchingWithOptions: 中完成。
我正在尝试添加一个 UISegmentedControl(仍以编程方式)作为第一个 UINavigationController 视图的子视图,如下所示:
// First navigation controller
UINavigationController *firstNavController = [[UINavigationController alloc] init];
firstNavController.navigationBar.barTintColor = [UIColor redColor];
firstNavController.title = @"First";
firstNavController.navigationBar.topItem.title = @"First top";
firstNavController.tabBarItem.image = [UIImage imageNamed:@"FirstTab"];
// First view
UIView *firstView = [[UIView alloc] init];
firstView.backgroundColor = [UIColor yellowColor];
// Add a segmented control to this view
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:
[NSArray arrayWithObjects:@"One", @"Two", nil]];
// Register an event handler
[segmentedControl addTarget:self action:@selector(segmentedControlSelectedIndexDidChange:)
forControlEvents:UIControlEventValueChanged];
// Shape it and select its first item
segmentedControl.frame = CGRectMake(10, 100, 300, 20);
segmentedControl.selectedSegmentIndex = 1;
// add the segmented control to the view
[firstView addSubview:segmentedControl];
// and the view to the first tab's navigation controler
[firstNavController.view addSubview:firstView];
UISegmentedControl 确实出现了,但没有处理触摸事件。
如果我更改代码并直接在 UINavigationController 中添加 UISegmentedControl,触摸事件实际上是在响应:
// and the segmented control directly within the navigation controller
[firstNavController.view addSubview:segmentedControl];
我做错了什么,我应该怎么做才能让它响应它的触摸事件?
【问题讨论】:
标签: ios objective-c ios7 uiview uisegmentedcontrol