简体   繁体   English

使用prepareForSegue显示从MasterViewController到DetailViewController的字符串

[英]Displaying a string from MasterViewController to DetailViewController using prepareForSegue

I have declared a string as a property in MasterViewController.h 我在MasterViewController.h中声明了一个字符串作为属性

    @property (nonatomic , readwrite) NSString *theString;

Here is my prepareForSegue method 这是我的prepareForSegue方法

     - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
      if ([[segue identifier] isEqualToString:@"showDetail"]) {

    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    NSString *string = [feeds[indexPath.row] objectForKey: @"link"];
   [[segue destinationViewController] setTheString:string];

  //UITextField *dest = [segue destinationViewController];
  //dest.theString = string;
}

} }

DetailViewController.hi have created an outlet for the textView DetailViewController.hi为textView创建了一个插座

    @interface APPDetailViewController : UIViewController
    @property (weak, nonatomic) IBOutlet UITextView *textView;

Now, What to code in implementation so i can display "theString" in MasterViewController to the textField in DetailViewController ? 现在,在实现中编码什么,以便我可以在MasterViewController中将“theString”显示到DetailViewController中的textField?

DetailViewController.h DetailViewController.h

@property (nonatomic , strong) NSString *myString; //Do this

MasterViewController.m MasterViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"showDetail"]) {

        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        NSString *string = [feeds[indexPath.row] objectForKey: @"link"];

        //Do this
        APPDetailViewController *myController = (APPDetailViewController*)segue.destinationViewController;
        myController.myString = string;
    }
}

Try this way. 试试这种方式。

1 - there should be theString property inside DetailViewController . 1 - DetailViewController应该有theString属性。 (Optional, see step 3 below) (可选,请参阅下面的步骤3)

2 - For the above code to compile and run, you must also cast destinationViewController to DetailViewController . 2 - 要编译和运行上面的代码,还必须将destinationViewControllerDetailViewController

Like this: 像这样:

DetailViewController * destVC = (DetailViewController *) [segue destinationViewController];

3 - 3 -

destVC.theString = string;

Optionally, without theString inside DetailViewController , you could do it like: 可选的,没有theStringDetailViewController ,你能做到这一点,如:

destVC.textView.text = string;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法从MasterViewController访问DetailViewController - Unable to access DetailViewController from MasterViewController 在SplitViewController中从DetailViewController隐藏MasterViewController - Hide MasterViewController from DetailViewController in a SplitViewController 使用prepareforSegue到DetailViewController - using prepareforSegue to DetailViewController 在UISplitViewController应用程序中从DetailViewController获取MasterViewController - getting the MasterViewController from the DetailViewController in a UISplitViewController app 将数据从detailViewController向后传递到masterViewController - Pass data backward from detailViewController to masterViewController ISplitViewController:DetailViewController可以从MasterVIewController加载数据而不需要回传吗? - ISplitViewController: Can DetailViewController load data from MasterVIewController without segueing back? 从MasterViewController在DetailViewController中设置detailItem时出现奇怪的错误 - Weird Error when setting detailItem in DetailViewController from MasterViewController 我应该如何从更改的masterViewController跟踪detailViewController? - how should I keep track of a detailViewController from a changing masterViewController? 如何从detailViewController填充数组并返回iOS中的masterViewController? - How to populate an array from detailViewController and return to masterViewController in iOS? 来自DetailViewController的数据未显示 - Data from DetailViewController not displaying
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM