在导航堆栈中将模型对象从一个视图控制器传递到另一个视图控制器

Passing model objects from one view controller to another in a navigation stack(在导航堆栈中将模型对象从一个视图控制器传递到另一个视图控制器)
本文介绍了在导航堆栈中将模型对象从一个视图控制器传递到另一个视图控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个 UITableViewController.一个显示名称列表,点击任何单元格将推送第二个 TableViewController,使用户能够在 UITextField 中编辑名称.

I have two UITableViewControllers. One displays a list of names and on tapping any cell will push the second TableViewController which enables the user to edit the name in a UITextField.

现在我可以将名称字符串从第一个 TableViewController 传递到第二个.(我通过在第二个 TableViewController 中创建一个属性来做到这一点,我在推送第二个 TableViewController 之前设置该属性)但是我如何将编辑后的名称字符串从第二个传递到第一个(这样我就可以更新第一个表用编辑过的名字)?

Now I am able to pass the name string from the first TableViewController to the second. (I'm doing this by creating a property in the second TableViewController which I'm setting just before pushing the second TableViewController) But how do I pass the edited name string from the second to the first (so that I can update the first table with the edited name)?

推荐答案

在第一个控制器中创建一个可变数组属性,并将该数组和一个索引传递给第二个控制器.

Create a mutable array property in the first controller, and pass that array and an index to the second controller.

FirstController.h

FirstController.h

   @property (nonatomic,retain)     NSMutableArray *myStrings;

FirstController.m

FirstController.m

   @synthesize myStrings;

   init {
         self.myStrings = [NSMutableArray arrayWithCapacity:8];
   }


   didSelectRowAtIndexPath {

     SecondVC *vc = [[SecondVC new];
     [self.theStrings addObject:@"Original String"]; // or replaceAtIndex: indexPath.row
     vc.theStrings = self.myStrings;
     vc.theIndex   = indexPath.row;
     //push detail vc.
   }

SecondController.h

SecondController.h

  @property (nonatomic, retain) NSMutableArray *theStrings;
  @property (nonatomic        ) int             theIndex;

SecondController.m

SecondController.m

  @synthesize theStrings;
  @synthesize theIndex;

  doneEditingMethod {
       [self.theStrings replaceObjectAtIndex: self.theIndex withObject: myNewString];
   }

这篇关于在导航堆栈中将模型对象从一个视图控制器传递到另一个视图控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
iOS VoiceOver functionality changes with Bundle Identifier(IOS画外音功能随捆绑包标识符而变化)
tabbar middle tab out of tabbar corner(选项卡栏中间的选项卡角外)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Get an event when UIBarButtonItem menu is displayed(显示UIBarButtonItem菜单时获取事件)