0

질문으로, 나는 자녀 TVC에 통지를 보내고 있으며 그 아동 TVC는 통지를받지 못하고 선택자 handleNotification: (NSNotification *) paramNotif을 발급합니다. 나는. I 해당 선택자에서 NSLog output을 가져 오지 마십시오.자식 UITableViewController 부모 UITableViewController 알림을받을 수 없습니다?

내 코드는 아래에 있으며 매우 자명합니다.

부모님 TVC도 모달 씬에서 알림을 받고 센터에서 자체를 제거하고 있다고 덧붙여야합니다 (dealloc). 부모 TVC도 부모님 이니까 작동해야합니다.

상위있는 UITableViewController

NSString *stringWithBOOL = [NSString stringWithFormat:@"%i",[self.workoutRoutine boolValue]]; 

NSString *kNotifName2 = @"workout"; 

NSNotification *notification = [NSNotification notificationWithName:kNotifName2 object:self userInfo:@{@"kworkout": stringWithBOOL}]; 

[[NSNotificationCenter defaultCenter] postNotification:notification]; 

이 법과 postNotificationToD5TVC에서 viewDidAppear

[self postNotificationToD5TVC]; 

에서 I는 method 및 이전 stringWithBool 값을 NSLogged 한 미세한 KS Segue

어린이있는 UITableViewController

I 변수 BOOL workout

의 viewDidLoad 에서

[self setUpSliders:[self isRoutine]]; 

하여 가지고 - (BOOL)이 의 handleNotification에서

NSString *kNotifName2 = @"workout"; 

NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; 

[center addObserver:self 
      selector:@selector(handleNotification:) 
       name:kNotifName2 
      object:nil; 

BOOL isCorrectWorkout = workout; 

return isCorrectWorkout; 

을 isRoutine : (NSNotification *) paramNotif

NSString *workoutString = paramNotif.userInfo[@"kworkout"]; 
NSInteger workoutInt = [workoutString integerValue]; 
workout = workoutInt; 

NSLog(@"Received notification in D5TVC and value of bool is %i",workout); 
+0

왜 부모 - 자식보기 컨트롤러에 알림을 사용하려고 했습니까? 당신의 목적은 무엇입니까? – Vaisakh

+0

@Vaisakh 다른보기 컨트롤러에서 부모로 변경된 사항이있는 경우 그러나이 코드는 여전히 작동해야합니까? 왜 그게 아냐? – Cescy

+0

정보를 전달할 수 있지만 알림을 사용하고 싶습니다. – Cescy

답변

0

문제는 아이 TVC를 호출하지 않은 것입니다. 알림이 부모에서 자식에게 전송 될 때 자식은 알림을 듣지 않습니다. 그래서 아동 TVC가 로딩 할 때 "돌아가서"이전의 고지를들을 수 없습니다.