Возврат значения из контроллера push-представления - PullRequest
0 голосов
/ 12 декабря 2011

В моем коде я настроил 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 Ответ

1 голос
/ 12 декабря 2011

Когда у меня это есть, у меня обычно есть элемент данных parentReference. например:

#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, но это не так)

...