Iphone 如何通过在另一个uiviewcontroller的文本字段中输入值来保存tableviewcontroller的detailtexlabel中的值?

Iphone 如何通过在另一个uiviewcontroller的文本字段中输入值来保存tableviewcontroller的detailtexlabel中的值?,iphone,objective-c,tableview,Iphone,Objective C,Tableview,我有一个应用程序,其中我有两个控制器,一个是由文本字段组成的viewcontroller,另一个是tableview控制器。当我在uiviewcontroller的文本字段中输入任何值并使用导航栏按钮项返回时,该值必须保存在我以前的tableviewcontroller的detailtextlabel中 将NSStringvaraiable的引用传递给第二视图控制器,在那里更改其值,当您返回到第一视图控制器时,您可以对其进行修改 使用NSUserDefaults在第二视图控制器中设置值。回到第一

我有一个应用程序,其中我有两个控制器,一个是由文本字段组成的viewcontroller,另一个是tableview控制器。当我在uiviewcontroller的文本字段中输入任何值并使用导航栏按钮项返回时,该值必须保存在我以前的tableviewcontroller的detailtextlabel中

  • NSString
    varaiable的引用传递给第二视图控制器,在那里更改其值,当您返回到第一视图控制器时,您可以对其进行修改

  • 使用
    NSUserDefaults
    在第二视图控制器中设置值。回到第一个视图控制器时,在
    viewdide
    方法中读取值


  • 这很简单。在
    TableViewController.h
    文件中声明一个
    NSString
    对象,如下所示:

    @interface TableViewController.h{

    NSString*detailTxt;}

    别忘了保留和合成它

    现在打开另一个包含文本框的ViewController。这样,创建
    TableViewController
    的对象,如下所示:

    TableViewController*nextController=[[TableViewController alloc]initWithNibName@“TableViewController”bundle:nil]

    现在您可以访问
    TableViewController
    对象。您只需调用在
    TableViewController.h
    中声明的字符串,并在文本框中指定文本

    nextController.detailTxt=YourTextBoxName.Text

    现在回到TableViewController,将
    detailTxt
    字符串中的文本分配给
    单元格。detailTextLabel
    。希望这有帮助


    快乐编码

    为此使用委托方法。 通过委托方法将值(textfield值)发送回第一个视图控制器(包含tableview)

    (您需要将所选行的索引设置为secondview控制器,并且必须将索引与值一起发送,以便可以正确更新数据源)

    收到值时更新数据源

    在第一个视图控制器的视图中重新加载tableview


    Pre req:您需要将数据源中的值设置为detailTextLabel。

    在appDelegate类中生成属性

    appDelegateview.h
    
        NSString *text;
    
        @property (nonatomic,retain) NSString *text;
    
    
    AppDelegateview.h.m 
    
        @synthesize text
    
    in viewWillDisappear of view.m
    
      yourAppDelegateClass *obj=(yourAppDelegateClass *)[[UIApplication sharedApplication] delegate];
    
      obj.text=@"your value";
    
    in tableViewController.m
    
    
    in cellForRowAtIndexPath:
    
    yourAppDelegateClass *obj=(yourAppDelegateClass *)[[UIApplication sharedApplication] delegate];
    cell.detailTextLabel.text=obj.text;
    

    你可以详细解释一下哪种委托方法?你必须编写一个新的委托(协议)才能将值发回。有关更多的ref abt协议,以及。我希望在通过下一个控制器的“导航后退”按钮导航时,将值保存在我的tableviewcontroller上。您实现这一点可能有点错误吗?您想检测导航控制器的点击事件吗?当我通过导航栏左后按钮项从nextcontroller导航到tableviewcontroller时,wasim。值应该保存在detailtextlabelishu上,现在它正在工作,但有一个问题,textfield值在之后的选项卡之间没有保留将TextFieldValue放入obj.text调用此行[obj.text retain];我已经这样做了,但这不起作用。当我单击选项卡时,会看到同一个选项卡,它们在textfield中没有值,因此detailtextlabelin cellForRow中没有值。。对于viewController,使用此yourTextField.text=obj.text;obj是我的viewController中appDelegate class.ishu的对象,它们不是cellforRow方法。那么我应该把代码放在哪里呢