ios UiPickerView 与 CountryPicker 类
Posted
技术标签:
【中文标题】ios UiPickerView 与 CountryPicker 类【英文标题】:ios UiPickerView with CountryPicker class 【发布时间】:2014-03-08 10:38:26 【问题描述】:我正在尝试从 https://github.com/nicklockwood/CountryPicker 添加 UiPickerView 类 我想在我的 viewController 中使用故事板,但是尽管 pickerView 显示了国家,但委托方法永远不会被调用。 这是我所做的: 我导入了 CountryPicker 文件夹和 Flags 文件夹,在故事板控制器中我添加了一个 UiPickerView 并将其分配给 CountryPicker 类。 ViewController.h 和 .m 文件与示例完全相同。 我找不到我缺少的东西。 我也尝试初始化对象并从我的 ViewController.m 文件中调用 setSelectedCountry 方法,但它也没有做任何事情。 ViewController.h
#import <UIKit/UIKit.h>
#import "CountryPicker.h"
@interface ViewController : UIViewController <CountryPickerDelegate>
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
[super viewDidLoad];
CountryPicker *picker = [[CountryPicker alloc] init];
[picker.delegate self];
[picker setSelectedCountryCode:@"US" animated:YES];
- (void)countryPicker:(__unused CountryPicker *)picker didSelectCountryWithName:(NSString *)name code:(NSString *)code
NSLog(@"country: %@",name);
@end
【问题讨论】:
故事板上是否已经绘制了选择器?您在viewDidLoad
中分配的那个没有被添加为子视图?
是的,它已经使用自定义类 (CountryPicker) 绘制在情节提要上
【参考方案1】:
您需要从情节提要创建一个 IBOutlet 到您的代码Apple Docs
删除您在 viewDidLoad
中创建新选择器的代码。
然后对于您创建的新 IBOutlet,将 self
设置为委托,因此如果您的出口被称为 picker
您的 viewDidLoad
应该如下所示:
- (void)viewDidLoad
[super viewDidLoad];
self.picker.delegate = self;
[self.picker setSelectedCountryCode:@"US" animated:YES];
【讨论】:
以上是关于ios UiPickerView 与 CountryPicker 类的主要内容,如果未能解决你的问题,请参考以下文章
iOS7 UIPickerView 的奇怪行为与 UIImage 作为自定义视图,任何官方信息?
iOS 7 UIPickerView 非选中行曲率修改多个组件
如何在 iOS 14 中更改 UIPickerView 选择的色调颜色?