【问题标题】:Working with the UI Table View, iOS 7使用 UI 表视图,iOS 7
【发布时间】:2014-03-20 05:39:28
【问题描述】:

我的项目中有UI View TableSimple View 控制器。它们通过导航控制器相互连接。在UI View Table 的顶部,有一个“添加新位置”按钮,它调用Simple View 的segue。后者具有必须由用户填写的文本字段。当用户点击“返回”按钮时,他/她必须看到带有新添加的单元格的“更新”的 UI 表格视图。

为了在这些视图之间传递数据,我使用了单例类(从我的角度来看,这完全符合 MVC 范例)。此对象具有NSMutableArray 作为属性,当用户在Simple View 控制器的文本字段中键入完后,该属性会更新。

但是,当我第一次启动应用程序时,按添加新位置按钮,在文本字段中输入文本并回击 - 没有任何反应,即 UI 表没有更新。

但是,当我再次重复相同的步骤时,两个(相同的)单元格被添加到 UI 表格视图中。

能否请您提示我如何解决此问题,即当用户按下后退按钮时,仅向 UI 表格视图添加一个单元格?

【问题讨论】:

    标签: iphone uitableview ios7 uinavigationcontroller xcode5


    【解决方案1】:

    这是因为 -(IBAction)textFieldReturn:(id)sender 被触发了两次。您必须在 viewWillDisappear:(BOOL)animated 中添加数据的方法,并检查空值:

    -(IBAction)textFieldReturn:(id)sender{
    
    }
    
    -(void)viewWillDisappear:(BOOL)animated {
    
        if ([_textSearch.text length] == 0) return;
    
        NSLog(@"%@", _textSearch.text);
        _info.isEdited=YES;
        _info=[GeoChatInformationAboutTheSelectedPlace returnInstance];
        [_info.arrayOfTheNamesOfTheLocations addObject:_textSearch.text];
        [_info.imagesOfTheSavedLocations addObject:@"car1.jpeg"];
        [_info.arrayOfTheNumberOfUpdatesOfTheSavedLocations addObject:@"1"];
        [_info.arrayOfTheOnLineUsersAtTheSavedLocations addObject:@"56"];
        [_info.arrayOfThePostsAssociatedWithTheSelectedLocation addObject:@3];
    }
    

    【讨论】:

      【解决方案2】:

      您必须在 tableview 视图控制器的 viewWillAppear:animated 方法中重新加载 UITableView 数据源:

          - (void)viewDidLoad
      {
          [super viewDidLoad];
          _info=[GeoChatInformationAboutTheSelectedPlace returnInstance];
          //[self.tableView reloadData];
      }
      
      -(void)viewWillAppear:(BOOL)animated {
      
          [self.tableView reloadData];
      }
      

      ps:你的 github 项目中缺少 car1.jpeg 和 car2.jpeg

      【讨论】:

      • 感谢您的建议。我按照您的建议做了,但是现在,当我第二次单击“添加新位置”时,先前输入的文本再次添加为新单元格。
      • 这是因为 -(IBAction)textFieldReturn:(id)sender 被触发了两次。您必须在 viewWillDisappear:(BOOL)animated 中添加数据的方法,并检查空值:-(void)viewWillDisappear:(BOOL)animated { if ([_textSearch.text length] == 0)返回; NSLog(@"%@", _textSearch.text); ecc ecc
      • 非常感谢!它帮助了我。您能否在对我的问题的回答中插入您的评论?我愿意接受您的建议作为我问题的正确解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 2014-08-11
      • 2023-03-25
      • 2013-09-27
      相关资源
      最近更新 更多