2011-12-12 9 views
0

私のコードでは、initWithNibNameをカスタマイズして、それを行うために必要なデータを受け取っています。コードは次のとおりです。プッシュビューコントローラから値を返す

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil theArray:(NSArray *)theDataArray theVal:(NSInteger)theDataValue bRange:(BOOL)isRange bColor:(BOOL)isColor{ 

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
     self.data = theDataArray; 
     self.selectedValue = theDataValue; 
     NSLog(@"NCG - initWithNibName setting selectedValue = %d.", self.selectedValue); 
     //self.originalValue = theDataValue; 
     self.isTheRange = isRange; 
     self.isTheColor = isColor; 
     self.selectedIndex = [self indexFromValue:theDataValue bRange:self.isTheRange bColor:self.isTheColor]; 
     self.doneClicked = NO; 
     //NSLog(@"Selected Row = %d.", self.selectedIndex); 
    } 
    return self; 
} 

このビューを実行すると、self.selectedValueが新しい値に更新されます。このビューがポップされたら、このビューをプッシュしたビューでこの値が必要です。

このデータはどのように入手できますか?

答えて

1

私はこれを持っているとき、私は通常、 'parentReference' データメンバ EXを持っている:

#import "A.h"; 
#import "B.h"; 

      @implementation A 

       - (void) f 
       { 
        B *bInstance = [[B alloc] init]; 
        bInstance.parentRef = self; 

        [self.navigationController pushViewController: bInstance]; 
       } 

// 'B' クラスはそのよう

@class A; 
@interface B : UIViewController 
{ 
    A *parentRef; 
} 
@property (nonatomic, assign) A *parentRef; 

のように宣言されている間、あなたが行くことができますバックあなたを「召喚」というクラスに、あなたが

をやりたい(あなたが[self.view superview] == parentRefと思うかもしれないが、それは本当ではない)

+0

これは私が持っていた問題を解決するために私はそれを+1して答えとしてマークしました。私の問題は、initWithNibnameを介して渡していた値が、新しいビューをプッシュする関数にとってローカルであるということでした。コールビューにグローバル化すると、すべてが機能しました。正しい方向に私を指してくれてありがとう。 – NCGrimbo

+0

私はこのサイトから多くのことを学んだので、私が助けることができてうれしいです。がんばろう! – codrut