1

ViewcontrollerにNSStringプロパティself.textFromTextVCがあり、その値はIBActionメソッドでnullになります。

- (IBAction)buttonPressed:(id)sender
{

    NSLog(@"text before alarm is created: %@", self.textFromTextVC);

}

以下のメソッドは同じ「.m」ファイルにあり、NSStringプロパティの値を保持します。

-(void)setPropertyTextToReceivedText:(NSString *)text
{

    self.textFromTextVC = text;

    NSLog(@"text received from text VC: %@", self.textFromTextVC);

    [self doesStringKeepValue]; //I call this method to check and see if the NSString value     
                                //was retained

}

-(void)doesStringKeepValue
{

    NSLog(@"keep value: %@", self.textFromTextVC); //NSString value the same from the above
                                                   //method
}

以下は、NSStringプロパティを宣言した方法です。

@property (nonatomic, copy) NSString *textFromTextVC;

基本的self.textFromTextVCに、IBActionメソッドが呼び出される前に設定しているので、混乱します。何が起こっているのかよくわかりません。ARCを選択しました。私は単純な間違いを犯しているだけだと思っています...助けて?ありがとう、

以下は、setPropertyTextToReceivedTextを呼び出した別のビューコントローラーのメソッドです。

@implementation TextViewController

@synthesize typedText;


- (IBAction)doneButton:(id)sender {

    [self.typedText resignFirstResponder];

    AlarmViewController *receiver = [[AlarmViewController alloc]init];
    [receiver setPropertyTextToReceivedText:self.typedText.text];

    //[self showAlert];
}
4

3 に答える 3

2

あなたの問題は、表示されている(現在/プッシュされている)オブジェクトとreceiverは異なるオブジェクトです。VC

AlarmViewController *receiver = [[AlarmViewController alloc]init];
[receiver setPropertyTextToReceivedText:self.typedText.text];
于 2012-12-26T16:43:31.050 に答える
0

これを変える:

NSLog(@"text before alarm is created: %@", self.textFromTextVC);

これに:

NSLog(@"%@: text before alarm is created: %@", self, self.textFromTextVC);

そして、実際に同じクラスの 2 つの異なるオブジェクト インスタンスを見ていることがわかるでしょう。

于 2012-12-27T12:39:56.280 に答える
-1

忘れたと思います:

@synthesize textFromTextVC;
于 2012-12-26T16:43:18.087 に答える