如题,继续小白学Ob-c,先谢各位大大!
想要把textfield中输入的变量存储在table中,附上代码:
在HWviewcontroller中的:
'''
@interface HWViewController ()
@property (nonatomic, strong) HWTableViewController *myTableViewController;
@property (strong, nonatomic) IBOutlet UISegmentedControl *mySegmentedControl;
@property (strong, nonatomic) IBOutlet UITextField *main;
@property (strong, nonatomic) IBOutlet UITextField *detail;
@property (strong, nonatomic) IBOutlet UIButton *addButton;
@property (strong, nonatomic) IBOutlet UIButton *showButton;
@property (strong, nonatomic) NSMutableDictionary *myItem;
@property (strong, nonatomic) NSString *combinedWord;
@end
@implementation HWViewController
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@"return button pressed");
[self.main resignFirstResponder];
[self.detail resignFirstResponder];
return YES;
}
-(IBAction)addPressed:(id)sender {
NSString *item=self.main.text;
NSString *detail=self.detail.text;
NSString *combine=[NSString stringWithFormat:@"%@%@",item,detail];
self.combinedWord=combine;
NSMutableArray *myWordArray = [[NSMutableArray alloc] init];
[myWordArray addObject:item];
[myWordArray addObject:detail];
[self.myItem setObject:myWordArray forKey:combine];
}
-(IBAction)showPressed:(id)sender {
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.myTableViewController];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Return"
style:UIBarButtonItemStyleDone target:self
action:@selector(dismissModalViewControllerAnimated:)];
[self.myTableViewController.navigationItem setLeftBarButtonItem:doneButton];
[self presentViewController:navController animated:YES completion:nil];
}
'''
然后tableviewcontroller的:
'''
@interface HWTableViewController ()
@end
@implementation HWTableViewController
(id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
(void)viewDidLoad
{
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 2;
}
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 2;
}
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
}
int r = indexPath.row;
int s = indexPath.section;
//这里是有问题的敌方,貌似不行
cell.textLabel.text = 这里想是self.main
cell.detailTextLabel.text = 这里像是self.detail
if (r%2 == 0) {
cell.backgroundColor = [UIColor redColor];
}
else{
cell.backgroundColor = [UIColor whiteColor];
}
return cell;
}
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int r = indexPath.row;
int s = indexPath.section;
NSString *string = [NSString stringWithFormat:@"Section %d, Row %d", s, r];
NSLog(@"%@", string);
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Selection" message:@"You have selected a row!" delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:@"Thatz not okay", nil];
[alertView show];
'''
怪我咯2017-04-22 09:02:41
cell.textLabel.text = 这里想是self.main
cell.detailTextLabel.text = 这里像是self.detail
这样显然是不行的,因为你的tableview里面根本就没有self.main
,self.detail
这2个值,
这个其实想解决有好几种方式,其中最简单的做法是在tableview中声明2个属性,跳转控制器之前把tableview的2个属性赋值.(记住,tableview有代理和数据源
)
退出键盘有一种更方便的方式[self.view endEditing:YES];