簡體   English   中英

為什么我的數據沒有通過視圖控制器傳遞?

[英]Why isn't my data being passed through view controllers?

我正在嘗試將文本字段文本從一個控制器傳遞到另一個控制器,以便可以通過電子郵件發送。 我正在舉一個例子,但是我必須缺少一些小細節。 基本上,目標是將數據文本字段文本從enteryournamecontroller控制器傳遞到選項控制器的nsstring。 nsstring的字符串變量返回null。

EnterYourNameController.h

 @interface EnterYourNameController : UIViewController{

  UITextField *textField;

  id <EnterYourNameController> delegate;
 }
  @property (strong, nonatomic) NSString *stringEntered;
  @property (strong, nonatomic)  UITextField *textField;
  @property (strong, nonatomic) id delegate; 

EnterYourNameController.m

       -(void)button{
       stringEntered=textField.text;

      ((Options *) (self.delegate)).string = stringEntered;

           UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
Options *vc = [storyboard instantiateViewControllerWithIdentifier:@"Options"];
     [self.navigationController pushViewController:vc animated:YES];

       }

options.h

  @interface Options : UIViewController <MFMailComposeViewControllerDelegate> {

   NSString *string;
   }
   @property (strong,nonatomic) NSString* string;

   @end

option.m

     NSString *emailBody = [NSString stringWithFormat:@"%@",string];

-(void) button方法中,初始化Options控制器並設置值。

-(void)button{

       stringEntered=textField.text;
       Options *optViewController = [[Options alloc] init];
       optViewController.string = stringEntered;
       //call your optViewController here
  }

希望在視圖之間切換時,選項VC中的字符串不會存在。 因此,您必須像這樣保留字符串屬性:

-(void)button
{
    Options *optViewController = [[Options alloc] init];
    optViewController.string = [[NSString stringWithString:textField.text] retain];
    //call your optViewController here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM