2014-10-15 2 views
0

나는 비콘과 그 속성을 표시하는 테이블이있는 기본 단일 뷰 iBeacon 앱을 구축하고 있습니다. 단일 뷰 응용 프로그램 일 경우 모든 것이 제대로 작동합니다. 원래 테이블보기가 더를 그대로, 내가 믿는내비게이션 컨트롤러와 rootViewController

2014-10-15 16:47:09.633 beacon-iphone[14524:4714482] -[UINavigationController setBeacons:]: unrecognized selector sent to instance 0x14d890f0 
2014-10-15 16:47:09.634 beacon-iphone[14524:4714482] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationController setBeacons:]: unrecognized selector sent to instance 0x14d890f0' 

AppDelegate.m의 코드 줄 예정이다 : 나는 탐색 컨트롤러에서이 단일 뷰를 삽입 할 때

는하지만, 나는 다음과 같은 오류가 나타날 내비게이션 컨트롤러에 포함될 때 rootViewController 길어요.

-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region { 
    ViewController *viewController = (ViewController*)self.window.rootViewController; 
    viewController.beacons = beacons; 
    [viewController.tableView reloadData]; 

    // Do stuff if beacons are found 
} 

내비게이션 컨트롤러를 어떻게 설명할까요? 이게 사소한 질문이라면 사과드립니다. iOS 신참입니다.

다음은 작업 코드가있는 스토리 보드입니다. 언급 한 바와 같이, 그것은 단지 당신의 ViewController를 얻기 위해 그 topViewController 속성에 액세스 할 수 있도록 네비게이션 컨트롤러는, 지금 내가 탐색 컨트롤러

enter image description here

답변

0

루트 뷰 컨트롤러에이를 포함하면 나누기

-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region { 
    UINavigationController *nav = (UINavigationController *)self.window.rootViewController; 
    ViewController *viewController = (ViewController *)nav.topViewController; 
    viewController.beacons = beacons; 
    [viewController.tableView reloadData]; 

    // Do stuff if beacons are found 
} 
+0

다음과 같은 경고 메시지가 생성됩니다. 'ViewController * viewController = nav.topViewController' 줄에'UIViewController * '형식의 표현식으로'ViewController * '를 초기화하는 호환되지 않는 포인터 유형 – Anconia

+0

@Anconia, 죄송합니다. 그 줄에 던지다. 내 대답을 업데이트했습니다 – rdelmar

+0

재밌 네요, 그냥 입력하고 응답하려고했다 - 빠른 응답 주셔서 감사합니다! 보기를 타자 할 때 유형이 잘못 되나요? – Anconia

관련 문제