self.cancelbutton并没有被创建出来啊,检查一下
如果确定self.cancelbutton已经创建过了,再检查一下frame,这种基本的用法应该不会有什么问题

解决方案 »

  1.   

    这是因为你的if 语句判断的语句不对,进不到这个if 判断。取button的title需要这样做NSString *title = [self.editandconfirmbutton titleForState:UIControlStateNormal];  //////get button's title
    if ([title isEqualToString:@"编辑"]) {
         [self.nickname  setEnabled:true];
            [self.genderseg setEnabled:true];
            
            
             NSLog(@"add it\n");
            [self.basicinfoview addSubview:self.cancelbutton];
            [self.editandconfirmbutton setTitle:@"确定"
                                       forState:UIControlStateNormal];
    }
      

  2.   

    这句话倒是提醒我了,这个cancelbutton我是在故事面板里面拖的,放好后,先removefromsuperview,移走了,然后这里再加,再加应该就可以直接加的,并不需要重新创建,对吧。
      

  3.   

    我知道原因了,我首先调用了removefromsuperview, 然后在以后适当的时候要加上,但它已经被释放了,我想加个[self.cancelbutton retain],但是自动内存管理,加了就编译不过啊,这里应该如何处理呢?
      

  4.   

    我知道原因了,我首先调用了removefromsuperview, 然后在以后适当的时候要加上,但它已经被释放了,我想加个[self.cancelbutton retain],但是自动内存管理,加了就编译不过啊,这里应该如何处理呢?
    也是需要加判断了,如果为nil,重建这个button
    if (nil == self.cancelbutton) {
            self.cancelbutton = [UIButton buttonWithXXXX];  /////重新生成实例
    }
    [self.basicinfoview addSubview:self.cancelbutton];