2012-12-09 144 views
0

在我的应用程序中,当我单击我的RightBarButtonItem时,它将推送另一个视图控制器,但它显示以下错误。NSCFString _forgetDependentDestradependentConstraint发送到实例的无法识别的选择器

-[__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第二视图控制器

  [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

嗨请粘贴一些mote代码... – Rajneesh071

回答

1

这个问题似乎与AddNewNote类有关。正如Cocoanetics建议的那样,在NSString上创建一个类别并在该类别中实现_forgetDependentConstraint:。在.PCH文件中添加#import用于新类别标题文件

1

听起来像我没有正确地分配一个实际的NSString到第一个或第二个视图控制器的标题或文本属性之一。

要找出问题出在哪里,请执行以下操作: - 在NSString上实现一个调试类别并添加一个_forgetDependentConstraint:方法,该方法只包含一个断点。 - 当此方法执行中断时,请检查调用堆栈以查看它究竟在哪里破坏 - 还要检查方法内部的自我并检查哪个字符串是罪魁祸首。

这听起来好像你在你的视图层次结构中有一个NSString而不是UIView。 UIView子类有这个_forgetDependentConstraint:方法,但字符串没有。

+0

我需要把这个方法..在第一个viewcontroller或第二? - (IBAction)_forgetDependentConstraint:(id)sender { NSLog(@“”); } – Rajendran

+0

@raaj都没有。 “在** NSString **上实现调试类别”... – 2012-12-09 14:52:53

+0

我不明白我需要做什么。我需要更清楚。因为我对这个开发很陌生 – Rajendran

相关问题