UIViewController 中的 iPhone UIPickerView
Posted
技术标签:
【中文标题】UIViewController 中的 iPhone UIPickerView【英文标题】:iPhone UIPickerView in UIViewController 【发布时间】:2010-02-12 06:33:22 【问题描述】:我有一个 xib,我在其中添加了一个名为 delta 的 UIViewController
。 delta 下的视图由 delta viewcontroller 控制,而不是文件所有者。在增量视图中,我有一个UIViewPicker
。我的问题是我在deltaviewcontroller
中的UIPickerView
中进行编程,并且我将deltaviewcontroller
作为UIPickerView
的代表和数据源发出。一切都应该工作,但是当我加载 deltaviewcontroller 的视图时,应用程序崩溃了。如果我在文件的所有者视图下以相同的方式执行所有操作,它就可以正常工作。我想知道是否真的有办法让 UIPickerView 与UIViewController
一起工作,而不必是文件的所有者。
供参考,代码:
标题
@interface DeltaViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>
NSMutableArray *arrayNo;
IBOutlet UIPickerView *pickerView;
@property (nonatomic, retain) UIPickerView *pickerView;
@property (nonatomic, retain) NSMutableArray *arrayNo;
@end
实施
#import "DeltaViewController.h"
@implementation DeltaViewController
@synthesize pickerView;
@synthesize arrayNo;
- (void)viewDidLoad
NSMutableArray *dollarsArray = [[NSMutableArray alloc] init];
for (int i = 0; i < 100; i++)
NSString *item = [[NSString alloc] initWithFormat:@"%i", i];
[dollarsArray addObject:item];
self.arrayNo = dollarsArray;
[dollarsArray release];
#pragma mark -
#pragma mark Picker Data Source Methods
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
return 1;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
return [arrayNo count];
#pragma mark Picker Delegate Methods
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
return [arrayNo objectAtIndex:row];
- (void)dealloc
[arrayNo release];
[pickerView release];
[super dealloc];
@end
如果我做错了什么,请指出。非常感谢您的帮助。
【问题讨论】:
这段代码看起来没问题,只是你泄露了“item”字符串。您遇到的实际崩溃/异常是什么?你能描述并展示加载/显示增量视图控制器的代码吗? 从“运行”菜单打开控制台,告诉我们您遇到的错误 【参考方案1】:如果您搜索如何在 UIView 中添加 UIPickerView,只需查看 Apple 的 UIPickerView 示例代码。我认为这是学习正确使用不同课程的最佳方法之一。有五个项目包括一个 UIPickerView。这是链接
UIPickerView class reference and sample code
【讨论】:
【参考方案2】:尝试做 [self.view addSubview:pickerView]; 在你的 viewDidLoad 方法中。
【讨论】:
以上是关于UIViewController 中的 iPhone UIPickerView的主要内容,如果未能解决你的问题,请参考以下文章
iPhone SDK如何将tableview中plist中的选定行传递到UIViewController
iPhone:在多线程环境中发布 UIViewController 时出现问题
在部分uiviewcontroller,monotouch iphone中添加标签栏