gpt4 book ai didi

iphone - 同一 View 中的两个 uipicker

转载 作者:行者123 更新时间:2023-12-01 19:23:18 25 4
gpt4 key购买 nike

我想要做的是将两个 uipicker 放在同一个 View 上,我在某处读到其中一个应该有自己的单独代表我试图这样做,但我无法使其正常工作。
有时,当我运行应用程序时,第二个应用程序只是停止工作,控制台上没有错误。
这是 View 的 .h 文件:

@interface FirstViewController : UIViewController {

IBOutlet UIPickerView *cities;
NSMutableArray *array;
NSString *picked;
}

@property(nonatomic,retain) IBOutlet UIPickerView *cities;
@property(nonatomic,retain) IBOutlet NSMutableArray *array;

这是.m:
@implementation FirstViewController
@synthesize cities,array;

-(void) getCities:(NSString *)link{
url=link;
NSString *str=[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
if([str length]==0){
[str release];
return;
}

SBJsonParser *parser=[[SBJsonParser alloc] init];
array=[[parser objectWithString:str] copy];
[receivedData release];

}


- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { // This method needs to be used. It asks how many columns will be used in the UIPickerView
return 1; // We only need one column so we will return 1.
}


- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component { // This method also needs to be used. This asks how many rows the UIPickerView will have.
return [array count]; // We will need the amount of rows that we used in the pickerViewArray, so we will return the count of the array.
}


- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { // what happens when selecting rows
picked=[array objectAtIndex:row];
}


- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { //method asks for what the title or label of each row will be
return [array objectAtIndex:row]; // We will set a new row for every string used in the array.
}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[sv setScrollEnabled:TRUE];
[sv setContentSize:CGSizeMake(320, 800)];
[self getCities:@"any url"];

[super viewDidLoad];
}


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


- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc. that aren't in use.
}


- (void)viewDidUnload
{
[super viewDidUnload];

// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc
{
[super dealloc];
}

@end

对于第二个 uipicker,我在 View 中添加了一个 nsobject,并将其类更改为我之前创建的“SecondPickerDelegate”,这是它的代码:
。H
#import <UIKit/UIKit.h>


@interface FirstViewSecondPickerDelegate : UIViewController<UIPickerViewDelegate>{

IBOutlet UIPickerView *specialities;
NSMutableArray *array;
NSString *picked;
}

@property(nonatomic,retain) IBOutlet UIPickerView *specialities;
@property(nonatomic,retain) NSMutableArray *array;
@property(nonatomic,retain) NSString *picker;

@end

.m 文件:
#import "FirstViewSecondPickerDelegate.h"
#import "JSON.h"


@implementation FirstViewSecondPickerDelegate
@synthesize specialities,array,picker;

-(void) getSpecialities:(NSString *)link{
url=link;
NSString *str=[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
if([str length]==0){
[str release];
return;
}

SBJsonParser *parser=[[SBJsonParser alloc] init];
array=[[parser objectWithString:str] copy];
for(int i=0;i<[array count];i++){
NSLog(@"index %i",i);
NSLog(@"value %@",[array objectAtIndex:i]);
}


}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView { // This method needs to be used. It asks how many columns will be used in the UIPickerView
return 1; // We only need one column so we will return 1.
}


- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component { // This method also needs to be used. This asks how many rows the UIPickerView will have.
return [array count]; // We will need the amount of rows that we used in the pickerViewArray, so we will return the count of the array.
}


- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { // what happens when selecting rows
picked=[array objectAtIndex:row];
}


- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { //method asks for what the title or label of each row will be
return [array objectAtIndex:row]; // We will set a new row for every string used in the array.
}


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
picked=@"1";
[self getSpecialities:@"http://localhost:8080/Test/gs"];
}


return self;
}
/*
-(void) viewDidLoad{
[super viewDidLoad];

}

*/

- (void)dealloc
{

[super dealloc];
}

- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView
{
}
*/


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{

[super viewDidLoad];
}


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

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

@end

如果有人有这种情况的工作示例,请提供帮助。

最佳答案

两个 UIPickerView 不需要单独的代表的观点相同。

使用 UIPickerView tag属性,然后您可以在委托(delegate)方法中区分它们。

关于iphone - 同一 View 中的两个 uipicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9148266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com