2012-12-09 5 views
0

내 응용 프로그램에서 내 RightBarButtonItem을 클릭하면 다른보기 컨트롤러가 푸시되지만 다음 오류가 표시됩니다.NSCFString _forgetDependentConstraint 인스턴스에 인식 할 수없는 선택기를 보냈습니다

-[__NSCFString _forgetDependentConstraint:]: unrecognized selector sent to instance 0x74c5960 

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString _forgetDependentConstraint:]: unrecognized selector sent to instance 0x74c5960' 

나는 내가 한 실수를 모른다.

하지만 뷰 컨트롤러에서 나는 viewDidLoad 2 뷰 컨트롤러

  [self.navigationController setNavigationBarHidden:TRUE animated:YES]; 




     first view controller contains the following code 

     - (void)viewDidLoad 
     { 
      [super viewDidLoad]; 

      [self.navigationController setNavigationBarHidden:TRUE animated:YES]; 
     baseView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 416)]; 

      UINavigationBar *navBar1 = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
      UINavigationItem *navItem1 = [[UINavigationItem alloc] initWithTitle:@""]; 
      [navBar1 pushNavigationItem:navItem1 animated:NO]; 
      UIBarButtonItem *menuButton1 = [[UIBarButtonItem alloc] initWithTitle:@"" 
                      style:UIBarButtonItemStyleBordered 
                      target:self 
                      action:@selector(toggleMenu1)]; 
      navItem1.leftBarButtonItem = menuButton1; 
      [baseView.self addSubview:navBar1]; 
      UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"scr2.png"]]; 
      [baseView.self addSubview:backgroundImage]; 

      UIPanGestureRecognizer *pancontrol = [[UIPanGestureRecognizer alloc] 
              initWithTarget:self action:@selector(panLayer:)]; 
      [self.view addGestureRecognizer:pancontrol]; 

      topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 416)]; 

      UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
      UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@""]; 
      [navBar pushNavigationItem:navItem animated:NO]; 
      UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithTitle:@"Menu" 
               `enter code here`       style:UIBarButtonItemStyleBordered                 target:self 
                      action:@selector(toggleMenu)]; 
      navItem.leftBarButtonItem = menuButton; 
      UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Add" 
                      style:UIBarButtonItemStyleBordered 
                     target:self 
                     action:@selector(toggleAdd)]; 
      navItem.rightBarButtonItem = addButton; 
      [topView.self addSubview:navBar]; 
      backgroundImage1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"notebookbg.png"]]; 
      [topView.self addSubview:backgroundImage1]; 
      [baseView.self addSubview:topView]; 
      [self.view addSubview:baseView]; 
       } 

만이 코드를 넣어

이 내 코드입니다.

첫 번째보기 컨트롤러에서 다음보기 컨트롤러로 이동하는 방법.

+0

어디에서이 메소드를 '_forgetDependentConstraint'라고 부릅니까? –

+0

푸시 후 깨진 경우 'viewDidLoad' 후 충돌하고'viewDidAppear' 또는 어딘가에있을 가능성이 있습니다. 그게 무슨 경계선인지 알아? – John

+0

안녕 모티프 코드를 붙여주세요 ... – Rajneesh071

답변

1

문제는 AddNewNote 클래스에있는 것 같습니다. Cocoanetics가 제안한대로 NSString에 카테고리를 만들고 카테고리에 _forgetDependentConstraint을 구현합니다. 새 카테고리 헤더에 #import을 파일에 추가하십시오.

1

나는 실제 NSString을 첫 번째 또는 두 번째 뷰 컨트롤러의 제목 또는 텍스트 속성 중 하나에 올바르게 지정하지 않은 것처럼 들립니다.

문제가 발생한 곳을 찾으려면 다음을 수행하십시오. - NSString에 디버그 범주를 구현하고 _ 중단 점 이외의 것을 포함하는 _forgetDependentConstraint : 메소드를 추가하십시오. -이 메소드에서 실행이 중단되면 호출 스택을 검사하여 정확히 을 깨는 부분을 확인합니다. 또한 메소드 내부에서 자체 검사를하고 어떤 문자열이 범인인지 확인합니다.

UIView 대신보기 계층에 어딘가에 NSString이있는 것처럼 들립니다. UIView 하위 클래스에는이 _forgetDependentConstraint : 메서드가 있지만 문자열은 그렇지 않습니다.

+0

어디서이 메서드를 넣어야합니까? 첫 번째 viewcontroller 또는 두 번째에? - (IBAction) _forgetDependentConstraint : (id) 발신자 { NSLog (@ ""); } – Rajendran

+0

@raaj 어느 쪽도 아닙니다. "** NSString **"에 디버그 범주 구현 ... –

+0

내가해야 할 일을 이해하지 못합니다. 나는 더 분명히 할 필요가있다. 이 개발을 처음 접했기 때문에 – Rajendran

관련 문제