首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有UIPickerView的静态UITableViewController无法加载UIPickerView

具有UIPickerView的静态UITableViewController无法加载UIPickerView
EN

Stack Overflow用户
提问于 2015-01-11 16:03:55
回答 1查看 735关注 0票数 1

我正在通过故事板在静态UITableViewCell中配置一个UIPickerView。由于某些原因,加载控制器时UIPickerView不显示。

故事板:

UIPickerView是单元格内容View...and的子级,表视图被配置为显示“静态单元格”。(分组样式)

UIPickerView代表和dataSource作为故事板连接检查器中的插座连接到UITableViewController:

如果我以编程方式将选取器视图添加到表格单元格中,则在viewDidLayoutSubviews回调中,将出现PickerView并触发委托回调,以便可以为选取器配置数据。(titleForRow等):

在TableViewController.m中:

代码语言:javascript
复制
    // Can't figure out why - but regionPicker view can't be added in viewDidLoad, so it gets added here
- (void) viewDidLayoutSubviews {
    // For some reason regionPicker view gets pushed to top of view unless setting x & y to 0,0 here...
    [self.regionPicker setFrame:CGRectMake(0, 0, 320, 162)];
    // Add the regionPicker view as a subview to the regionPickerCell
    [self.regionPickerCell.contentView addSubview:self.regionPicker];    
}

这会导致选取器的正确初始化出现问题,因为每次在UIPIckerView中进行新的选择时都会调用viewDidLayoutSubviews。

下面是我的TableViewController.h文件:

代码语言:javascript
复制
@import UIKit;

@class DetailViewController;

@interface DetailViewController : UITableViewController<UIPickerViewDataSource, UIPickerViewDelegate>

@property (weak, nonatomic) IBOutlet UITableViewCell *regionCell;
@property (weak, nonatomic) IBOutlet UITableViewCell *regionPickerCell;
@property (weak, nonatomic) IBOutlet UIPickerView *regionPicker;

@end

通过故事板在静态UITableViewContoller中加载UIPickerView的正确方法是什么?

此外,我不知道这是否相关,但在本例中,表视图控制器是通过段从另一个UITableViewController加载的:

代码语言:javascript
复制
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"configNotification"]) {

        UINavigationController *navigationController = segue.destinationViewController;
        // Here's the UITableViewController in question...
        DetailViewController *detailViewController = [navigationController viewControllers][0];

        NSIndexPath *selectedPath = [self.tableView indexPathForCell:sender];
    }
}

任何想法都是非常感谢的!

Xcode v6.1、SDK v8.1

EN

回答 1

Stack Overflow用户

发布于 2015-01-16 00:17:10

我通过从Storyboard中删除此控制器中的现有选取器视图,然后重新添加每个视图来解决此问题。

由于某种原因,拾取器视图在故事板视图中呈灰色显示。(上图第一张)在删除Picker视图并将其添加回来后,它并没有变灰。我不知道为什么Picker View一开始是灰色的,也不知道这对Storyboard意味着什么,但希望这能在未来对某些人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27885139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档