我是iOS新手。我正在构建一个示例项目。我的项目中有四个viewController。第一个有两个文本框。一个是进入国家,另一个是进入城市。点击他们每个人,推到第二个viewController完成。在第二,第三和第四个viewControllers中,我在它们中都有tableViews。如何知道通过点击哪个文本框,推送完成
第二个viewController中的表视图我有一个国家的列表,第三个viewController中的表视图我有一个状态列表和第四个viewController中的表视图我有一个城市列表。
点击每个桌面视图的单元格,就会完成下一个。
现在我的要求是,当我点击国家textfield时,推送只会完成到第二个viewController,当我点击城市时,textField推送将完成到第四个viewController。
我想知道的是,如何知道从哪个文本字段推送完成。
任何帮助表示赞赏。提前致谢。
这是我第一次的viewController实现文件...
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.txtCity.delegate = self;
self.txtCountry.delegate = self;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
if (textField.tag == 1) {
[self performSegueWithIdentifier:@"countryScene" sender:self];
} else{
[self performSegueWithIdentifier:@"countryScene" sender:self];
}
return YES;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
这是我第二次的viewController实现文件..
#import "CountryViewController.h"
@interface CountryViewController()
@end
@implementation CountryViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.arrCountries = @[@"India", @"Bangladesh", @"Australia", @"New Zealand", @"South Africa", @"West Indies", @"Sri Lanka", @"England", @"Argentina", @"Brazil"];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"countryCell"];
UILabel *lblCountry = (UILabel*)[cell.contentView viewWithTag:3];
lblCountry.text = [self.arrCountries objectAtIndex:indexPath.row];
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.arrCountries count];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier: @"stateScene" sender: self];
}
@end
这是我第三的viewController实现文件:
#import "StateViewController.h"
@interface StateViewController()
@end
@implementation StateViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.arrStates = @[@"West Bengal", @"Uttar Pradesh", @"Madhya Pradesh", @"Jharkhand", @"Bihar", @"Tamilnadu", @"Myanmar", @"Arunachal Pradesh", @"Assam", @"Goa"];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"stateCell"];
UILabel *lblStates = (UILabel*)[cell.contentView viewWithTag:4];
lblStates.text = [self.arrStates objectAtIndex:indexPath.row];
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.arrStates count];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier: @"cityScene" sender: self];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
这是我的第四个viewController实现文件...
#import "CityViewController.h"
@interface CityViewController()
@end
@implementation CityViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.arrCities = @[@"Kolkata", @"Bangalore", @"Chennai", @"Mumbai", @"Hyderabad", @"Mangalore", @"New York", @"London", @"Rio de Janeiro", @"Buenos Aires"];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cityCell"];
UILabel *lblCities = (UILabel*)[cell.contentView viewWithTag:5];
lblCities.text = [self.arrCities objectAtIndex:indexPath.row];
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [self.arrCities count];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier: @"showRecipeDetail" sender: self];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
我想你还没有理解我的问题。我的问题是,当我在每个textField中点击时,将会对名为countryScene的viewController进行推送。但是,当我来自国家textfield时,推送只会到达乡村场景,当我来自城市textField时,推送将完成到最后一个viewController,即cityScene。 实际上,在我的项目中,我希望使用nsnotificationcenter从tableviews中选择textFields的数据。 – iPeter 2015-03-19 06:09:39
但是你说如果你点击第二个文本字段,它应该直接推送到第四个视图控制器,即城市视图控制器。如果您点击国家/地区的文本字段,上面的答案会推送到国家/地区视图控制器,否则将直接推送到城市视图控制器 – 2015-03-19 06:11:50
请参阅我编辑的评论! @Sunelwala – iPeter 2015-03-19 06:12:39