0

我有 3 个视图控制器。

  • 导航控制器 -N
  • 表视图控制器 -T
  • 自定义视图控制器 -C

    他们的布局是这样的:

    N-(根视图控制器)-> T-(栏按钮项添加 - 触发 Segue)->C

    澄清一下,T有一个“添加”按钮,它有一个触发的 segue 动作以C模态显示。

    C并且T都有自定义类。C是一个简单的UIViewController子类,而T是一个UITableViewController子类。

    T我声明一个NSMutableArray和一个UITableView这样的:

    @interface T: UITableViewController {
        NSMutableArray *myTableData;
        IBOutlet UITableView *myTableView;
    }
    

    C我有两个元素:

  • 一个UITextField
  • 一个UIButton叫“送”

    我将文本字段连接到 IBOutletC的标题中,并为按钮创建一个操作:

    @interface C: UITableViewController {
        IBOutlet UITextField *itemToAdd;
    }
    -(IBAction)addItem:(id)sender;
    

    所以我有myTableData填充表的数据数组T声明和初始化T(我将myTableData = [[NSMutableArray alloc] init]viewDidLoad.T

    当单击导航栏中的“添加”按钮时,T它显然会弹出C并从文本字段中获取一些文本。

    最后,当按下发送按钮时,我想将文本字段中的文本添加到myTableData数组中,关闭C(我打算这样做[self dismissViewControllerAnimated:YES completion:nil],并更新表格视图myTableView以反映我所做的更改。

    有谁知道我如何做到这一点?主要是我需要帮助以某种方式访问myTableData​​(位于T) FROM C。然后我需要T认识到已经进行了一些更改并重新绘制其单元格(可能通过煽动 cellForRowAtIndexPath)。我知道如何执行所有硬编码的 Apple 文档,但我发现如果您想直观地表示情节提要中的所有内容并且他们没有解释所有内容的确切含义(例如 itemInputController),那么该方法是不可行的。

    如果我的方法完全不正确,并且我不需要所有这些类或方法,或者我做错了,请随时使用情节提要给我一个类似的方法。

  • 4

    1 回答 1

    0

    创建一个NSMutableArray并将其存储在您的NSUserDefaults. 就是这样:

    在您的C - UIViewController,send按钮上IBAction

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableArray *arr = [defaults objectForKey:@"data"];
    [arr addObject:WHATEVER_YOU_WANT_TO_ADD];
    [defaults setObject:arr forKey:@"data"];
    [defaults synchronise];
    

    您可以在 T! 中使用相同的方法!

    于 2013-11-05T08:03:19.717 回答