2015-12-06 2 views
0

Я в реализации xib - Можно ли проверить, кто является владельцем файла программным способом во время выполнения?Как проверить программный владелец файла xib?

что-то вроде этого: (только он не работает, очевидно: P)

-(id)initWithCoder:(NSCoder *)coder{ 
    if ([self.owner isEqualToString:@"FirstTab"]){ 
     //do something 
    }else if ([self.owner isEqualToString:@"SecondTab"]){ 
     //do something else 
    } 
} 

Спасибо!

+0

В какой класс входит 'initWithCode:' -метод? Владелец или NSView/UIView? – Astoria

+0

@Astoria - NSView –

ответ

1

Из UIViewController, вы должны быть в состоянии получить имя файла бобов, как это, изнутри viewDidLoad:

self.nibName

Вы можете проверить НСБ Name так же, как вы делали выше:

if ([self.nibName isEqualToString:@"FirstTab"]) { 

} else if ([self.nibName isEqualToString:@"SecondTab"]) { 

} 
0

Если это ваш заказ NSView -subclass, добавьте свойство с владельцем

@interface MyCustomView : NSView 

@property (nonatomic, weak) id owner; 

@end 

Не забудьте установить это свойство в вашем NSViewController как

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    if ([self.view isKindOfClass:[MyCustomView class]]) 
    { 
    MyCustomView *view = (MyCustomView *)self.view; 
    view.owner = self; // in view's awakeFromNib: check owner value 
    } 
} 

Я обычно определяют протоколы, но это зависит от ваших целей. Зачем вам нужно знать, имеет ли представление объект владельца?

Смежные вопросы