你的位置:首页 > 操作系统

[操作系统]对简单单元格的增删改


效果图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#import <UIKit/UIKit.h>#import "RootTableViewController.h"@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (strong, nonatomic) UIWindow *window;@end

 

 

#import "AppDelegate.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  self.window.rootViewController=[[UINavigationController alloc]initWithRootViewController:[[RootTableViewController alloc]initWithStyle:UITableViewStylePlain]];  return YES;}

 

 

#import <UIKit/UIKit.h>@interface RootTableViewController : UITableViewController@property(strong,nonatomic) NSMutableArray * array;@end

 

 

#import "RootTableViewController.h"#import "ViewController.h"@interface RootTableViewController ()<postValuedelegate>{  //记录选中行的索引值  NSIndexPath * currentInfrxPath;}@end@implementation RootTableViewController- (void)viewDidLoad {  [super viewDidLoad];  //添加liftbarabutton    self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addItem)];    self.navigationItem.rightBarButtonItem = self.editButtonItem;    self.array=[NSMutableArray array];    [self.array addObject:@"zhangsan"];    [self.array addObject:@"lisi"];    [self.array addObject:@"wangwu"];    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"reuseIdentifier"];      // 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.  }-(void)addItem{  UIAlertController *alertcontroller=[UIAlertController alertControllerWithTitle:@"确定要增加吗" message:@"输入姓名?" preferredStyle:(UIAlertControllerStyleAlert)];  UIAlertAction * ok=[UIAlertAction actionWithTitle:@"增加" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {    UITextField * textName= alertcontroller.textFields[0];            [self.array addObject:textName.text];        [self.tableView reloadData];    //    NSLog(@"真正的操作");  }];    [alertcontroller addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {        textField.placeholder=@"添加姓名";  }];    [alertcontroller addAction:ok];    [self presentViewController:alertcontroller animated:YES completion:nil];  }-(void)postvalue:(NSString *)username{  //为集合指定索引位置元素赋值  self.array[currentInfrxPath.row]=username;  NSLog(@"%@",username);  //刷新数据  [self.tableView reloadData];}- (void)didReceiveMemoryWarning {  [super didReceiveMemoryWarning];  // Dispose of any resources that can be recreated.}#pragma mark - Table view data source- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {  return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {  return self.array.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuseIdentifier" forIndexPath:indexPath];    cell.textLabel.text=self.array[indexPath.row];    return cell;}-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    currentInfrxPath=indexPath;  ViewController *vc=[[ViewController alloc]init];    vc.name=self.array[indexPath.row];  vc.delegate=self;  [self.navigationController pushViewController:vc animated:YES];}// Override to support conditional editing of the table view.- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {  // Return NO if you do not want the specified item to be editable.  return YES;}// Override to support editing the table view.- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {  if (editingStyle == UITableViewCellEditingStyleDelete) {    // Delete the row from the data source        [self.array removeObjectAtIndex:currentInfrxPath.row];    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];  } else if (editingStyle == UITableViewCellEditingStyleInsert) {    // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view  }  }// Override to support rearranging the table view.- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {  //1.找到指定位置集合元素  NSString * name= self.array[fromIndexPath.row];  //2.删除集合元素  [self.array removeObject:name];  //3插入集合  [self.array insertObject:name atIndex:toIndexPath.row];    NSLog(@"%@",self.array);  }// Override to support conditional rearranging of the table view.- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {  // Return NO if you do not want the item to be re-orderable.  return YES;}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {  // Get the new view controller using [segue destinationViewController].  // Pass the selected object to the new view controller.}*/@end

 

 

#import <UIKit/UIKit.h>@protocol postValuedelegate <NSObject>-(void)postvalue:(NSString *) username;@end@interface ViewController : UIViewController<UITextFieldDelegate>@property(strong,nonatomic) NSString *name;@property(strong,nonatomic) UITextField * textNmae;@property(strong,nonatomic) id<postValuedelegate> delegate;@end

 

 

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {  [super viewDidLoad];    self.view.backgroundColor=[UIColor greenColor];  self.textNmae=[[UITextField alloc]initWithFrame:CGRectMake(100, 100, 150, 44)];    self.textNmae.delegate=self;    self.textNmae.borderStyle=1;    self.textNmae.text=self.name;    [self.view addSubview:self.textNmae];}-(BOOL)textFieldShouldReturn:(UITextField *)textField{    if (self.delegate) {    [self.delegate postvalue:textField.text];  }  if ([textField isFirstResponder]) {    [textField resignFirstResponder];  }    [self.navigationController popViewControllerAnimated:YES];    return YES;}- (void)didReceiveMemoryWarning {  [super didReceiveMemoryWarning];  // Dispose of any resources that can be recreated.}@end