iphone - 在 iOS 中关闭 UIPickerView

标签 iphone objective-c

我试图通过点击 UIBarButtonItem 来关闭 UIPickerView。因此,我做了一个操作,并在该操作中调用了 [PickerView removeFromSuperview]。但是,它不起作用。

ViewController.h

#import <UIKit/UIKit.h>
@interface ViewController : UIViewController< UIPickerViewDelegate,UIPickerViewDataSource>
- (IBAction)dissmissPicker:(id)sender;
@property (nonatomic,strong) NSArray *ColorName;

@end

ViewController.m:

#import "ViewController.h"

@implementation ViewController
@synthesize ColorName;

// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 1;
}

// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{

    return [ColorName count];
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

    return [ColorName objectAtIndex:row];

    }
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    ColorName = [[NSArray alloc]initWithObjects:@"Red",@"White",@"Yellow",@"Green",@"Blue",@"Black",@"Brown",@"Cyan",nil];
   // [pickerview removeFromSuperview];

}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    UIColor *newColor;

    switch (row) {
        case 0:
            newColor = [UIColor redColor];
            break;
        case 1:
            newColor = [UIColor whiteColor];
            break;       
        case 2:
            newColor = [UIColor yellowColor];
            break;        
        case 3:
            newColor = [UIColor greenColor];
            break;            
        case 4:
            newColor = [UIColor blueColor];
            break;        
        case 5:
            newColor = [UIColor blackColor];
            break;     
        case 6:
            newColor = [UIColor brownColor];
            break;
        case 7:
            newColor =[UIColor cyanColor];
            break;
        default:
            newColor = [UIColor redColor];
            break;
    }
 self.view.backgroundColor = newColor;

}
- (void)viewDidUnload
{
   // [self setShowColor:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (IBAction)dissmissPicker:(id)sender {


    [pickerView removeFromSuperview];

}

最佳答案

我从评论中假设您正在使用界面生成器?

如果是这种情况,您需要制作一个 socket 并将其连接到 IB 中。

-在 .h 文件中创建 socket

IBOutlet UIPickerView *picker;

-在界面生成器中连接 socket

-关闭 View

[picker removeFromSuperview];

关于iphone - 在 iOS 中关闭 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836641/

相关文章:

objective-c - 在 NSBundle 中使用 ConnectionKit 框架

objective-c - 图数据结构的面向对象实现

iphone - 我可以检查 iPhone 是否已插接吗?

ios - 如何同时弹出模态视图和上一个导航 Controller View ?

iphone - Touch 后获取标签文本 [tableView]

iphone - 如果键以 @ 符号开头,则在 NSDictionary 上使用 valueForKeyPath?

objective-c - 使用 Objective-C 中的 If 语句根据数值设置 UITextfield 的颜色

iphone - 用于选择器 View iPhone 的 JSON 数组

iPhone签名问题: Private keys "disconnected" from developer and distribution certs

iphone - 写入 SQLite DB 时出错