0

Objective-C (Xcode) で、ある viewController から次の viewController に値を渡すことができません。次のviewControllerの変数の値はnullになります。ここで何が欠けているのかわからず、完全に立ち往生しています。私を助けてください。

これが私のコードの最初のviewController(detailsViewController.h)です:

    @property (weak, nonatomic) IBOutlet UITextField *fromTextField;

.m

ResultViewController *resultObject=[self.storyboard instantiateViewControllerWithIdentifier:@"ResultViewController"];
resultObject.fromValueFromDVC=self.fromTextField.text;
[self presentViewController:resultObject animated:YES completion:nil];

2番目のviewController(ResultViewController.h)

    @interface ResultViewController : UIViewController<NSXMLParserDelegate>
    @property (weak, nonatomic) IBOutlet UILabel *fromLabel;
    @property(strong,nonatomic) NSString *fromValueFromDVC;

.m

    - (void)viewDidLoad
    {

   [super viewDidLoad];        
    self.fromLabel.text=self.fromValueFromDVC;
    }

助けてください。よろしくお願いします!

4

1 に答える 1

2

prepareForSegue メソッドでsegue.destinationViewControllerを使用します。[self.storyboard instantiateViewControllerWithIdentifier:@"ResultViewController"]の代わりに ;

(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{



 if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
   {
    ResultViewController *resultObject= segue.destinationViewController
    resultObject.fromValueFromDVC=self.fromTextField.text;

   // If you have the segue rightly set up you don't need this like here.
    **[self presentViewController:resultObject animated:YES completion:nil];**
   }

  }

それが役に立てば幸い。

于 2013-06-04T18:03:40.880 に答える