2016-03-31 17 views
1

nesnesel c dosyasına alın. Hızlı dosyadan nesnel c'ye bildirim göndermeye çalışıyorum c. Bugüne kadar benim girişimi:hızlı dosyadan bildirim gönderin ve ios

ClassA.swift

override func viewDidLoad() { 
     super.viewDidLoad() 

     let containerDict:[String:AnyObject] = ["vwConatinerFrameWidth": vwContainer.frame.size.width, "vwConatinerFrameHeight": vwContainer.frame.size.height] 

     NSNotificationCenter.defaultCenter().postNotificationName("ContainerFrame", object: self, userInfo: containerDict) 

     let classB = ClassB(nibName: "ClassB", bundle: nil) 

     classB.willMoveToParentViewController(self) 

     self.vwContainer.addSubview(classB.view) 

     self.addChildViewController(classB) 
     classB.didMoveToParentViewController(self) 

    } 

ClassB.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(containeFrameRecieved:) 
               name:@"ContainerFrame" 
               object:nil]; 
} 

- (void)containeFrameRecieved:(NSNotification *)note { 
    NSDictionary *theData = [note userInfo]; 

    if (theData != nil) { 

     CGFloat containerFrameWidth = [[theData objectForKey:@"vwConatinerFrameWidth"] floatValue]; 
     CGFloat containerFrameHeight = [[theData objectForKey:@"vwConatinerFrameHeight"] floatValue]; 

     NSLog(@"Width:%f and Height: %f",containerFrameWidth,containerFrameHeight); 
    } 

}

My-Köprü-Header.h

#import "ClassB.h" 

Ancak sorun şu ki, değer ClassB'ye gelmiyor. Bu kodda neyin yanlış olduğunu kimse anlatabilir mi?

+1

değerini bulabilir ve ClassA'nın bildirimi göndermeden önce kendini bir gözlemci olarak eklediğinden emin olun. – damirstuhec

+0

@damirstuhec: Yaptım ama hiçbir şey değişmedi. – Poles

+1

'ClassA',' ClassB' ViewController gibi görünüyor. Onlar aynı zamanda gerçekten "canlı" mı? Onların yaşam döngüsü nedir? – Larme

cevap

2

Bildirimi göndermeden önce ClassB nesnesinin bir nesnesini oluşturuyorsunuz. Bu nedenle, notif gönderilirken ClassB nesnesi mevcut değil. Bildirimi göndermeden önce ClassB viewDidLoad:'un çağrıldığından emin olun. Sadece o zaman ClassB

+0

Çok teşekkürler. CLassB'ın nesnesini oluşturmadan önce bildirim göndermem gerektiğini düşündüm. – Poles

+0

Bunu yaparsanız, bildirim gönderildiği sırada B onlara abone olmazdı. – lostInTransit

İlgili konular