如题,继续小白学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];
'''
cell.textLabel.text = 这里想是self.main
cell.detailTextLabel.text = 这里像是self.detail
This is obviously not possible, because there are no
self.main
,self.detail
these two values in your tableview,There are actually several ways to solve this problem. The simplest way is to declare two attributes in the tableview and assign values to the two attributes of the tableview before jumping to the controller. (
记住,tableview有代理和数据源
)There is a more convenient way to exit the keyboard
[self.view endEditing:YES];