2014-01-06 5 views
0

오른쪽 메뉴가 & 인 ECSlidingViewController를 사용하고 있습니다.iAds가있는 ECSlidingViewController

전체 앱 하단에 iAds를 표시하려고합니다. 내 StoryBoard 진입 점은 ECSlidingViewController 하위 클래스 인 ViewController입니다.

스토리 보드는 다른 모든 코드와 함께 AutoLayout 용으로 설정됩니다. 나는 제군이 표시 될 때 변경됩니다 높이로 어딘가에 제약 조건을 추가 할 필요가 같은

View hierarchy unprepared for constraint. 
    Constraint: <NSAutoresizingMaskLayoutConstraint:0xb2a9030 h=--- v=--- UIView:0xa499b70.midX == UIView:0xa4a95f0.midX> 
    Container hierarchy: 
<UIView: 0xa4a95f0; frame = (0 0; 768 1024); layer = <CALayer: 0xa4a84d0>> 
    View not found in container hierarchy: <UIView: 0xa499b70; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0xa499380>> 
    That view's superview: <UIWindow: 0xb263e30; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0xb264f30>; layer = <UIWindowLayer: 0xb264080>> 
2014-01-06 20:22:15.772 AppTest[10851:a0b] View hierarchy unprepared for constraint. 
    Constraint: <NSAutoresizingMaskLayoutConstraint:0xb2a9180 h=--- v=--- UIView:0xa499b70.width == UIView:0xa4a95f0.width> 
    Container hierarchy: 
<UIView: 0xa4a95f0; frame = (0 0; 768 1024); layer = <CALayer: 0xa4a84d0>> 
    View not found in container hierarchy: <UIView: 0xa499b70; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0xa499380>> 
    That view's superview: <UIWindow: 0xb263e30; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0xb264f30>; layer = <UIWindowLayer: 0xb264080>> 
2014-01-06 20:22:15.772 AppTest[10851:a0b] View hierarchy unprepared for constraint. 
    Constraint: <NSAutoresizingMaskLayoutConstraint:0xb2a92b0 h=--- v=--- UIView:0xa499b70.midY == UIView:0xa4a95f0.midY> 
    Container hierarchy: 
<UIView: 0xa4a95f0; frame = (0 0; 768 1024); layer = <CALayer: 0xa4a84d0>> 
    View not found in container hierarchy: <UIView: 0xa499b70; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0xa499380>> 
    That view's superview: <UIWindow: 0xb263e30; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0xb264f30>; layer = <UIWindowLayer: 0xb264080>> 
2014-01-06 20:22:15.815 AppTest[10851:a0b] View hierarchy unprepared for constraint. 
    Constraint: <NSAutoresizingMaskLayoutConstraint:0xb2a92e0 h=--- v=--- UIView:0xa499b70.height == UIView:0xa4a95f0.height> 
    Container hierarchy: 
<UIView: 0xa4a95f0; frame = (0 0; 768 1024); layer = <CALayer: 0xa4a84d0>> 
    View not found in container hierarchy: <UIView: 0xa499b70; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0xa499380>> 
    That view's superview: <UIWindow: 0xb263e30; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0xb264f30>; layer = <UIWindowLayer: 0xb264080>> 
2014-01-06 20:22:15.815 AppTest[10851:a0b] View hierarchy unprepared for constraint. 
    Constraint: <NSAutoresizingMaskLayoutConstraint:0xb2a9030 h=--- v=--- UIView:0xa499b70.midX == UIView:0xa4a95f0.midX> 
    Container hierarchy: 
<UIView: 0xa4a95f0; frame = (0 0; 768 1024); layer = <CALayer: 0xa4a84d0>> 
    View not found in container hierarchy: <UIView: 0xa499b70; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0xa499380>> 
    That view's superview: <UIWindow: 0xb263e30; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0xb264f30>; layer = <UIWindowLayer: 0xb264080>> 
2014-01-06 20:22:15.838 AppTest[10851:a0b] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'Unable to install constraint on view. Does the constraint reference something from outside the subtree of the view? That's illegal. constraint:<NSAutoresizingMaskLayoutConstraint:0xb2a9030 h=--- v=--- UIView:0xa499b70.midX == UIView:0xa4a95f0.midX> view:<UIView: 0xa4a95f0; frame = (0 0; 768 1024); layer = <CALayer: 0xa4a84d0>>' 

가 보이는 : 나는 viewWillAppear에 self.canDisplayBannerAds = YES;을 추가 할 때

는 빌드가 실패합니다.

답변

1

먼저보기가 표시되기 전에 (보기가로드 될 때) canDisplayBannerAds으로 설정하십시오.

둘째, 자동 크기 조정 제약 조건을 자동으로 변환하지 않도록보기를 업데이트하십시오 (translatesAutoresizingMaskIntoConstraints 참조).

+0

ECSlidingViewController 하위 클래스에서 'translatesAutoresizingMaskIntoConstraints = NO'로 설정하면 사이드 패널이 올바르게 표시되지 않으므로 다시 닫을 수 없습니다. – JMWhittaker

+0

그런 다음 적절한 프레임/제약 조건을 설정해야합니다. 'canDisplayBannerAds'를 사용하지 않고 메인보기에 직접 배너를 추가하면 (광고가 측면 패널에 표시되지 않도록) 매우 유혹받을 것입니다. – Wain

+0

Wain, 예, 제가 현재 가지고있는 것입니다. 앱 스토어 리뷰에 조금 걱정했지만 어쨌든 제출하겠습니다. 나는 계속해서 다른 해결책을 시도 할 것이다. – JMWhittaker

0

저는 ECSlidingViewController의 하위 뷰의 크기를 조정하려고한다는 점에 대해 생각합니다. 대신 ECSlidingViewController의 뷰 크기를 조정해야합니다.

컨테이너보기 컨트롤러를 만들고 그 지점을 만듭니다. 자식 뷰는 iAd 뷰와 ECSlidingViewController 뷰입니다.

+0

안녕하세요, 마이크 덕분에이 도구를 이용해 주셔서 감사합니다. http://stackoverflow.com/questions/22308531/how-to-go-back-to-current-view-controller?noredirect=1#comment33898011_22308531주세요. 도움? –