2010-05-10 21 views
5

Tôi đang gặp một chút rắc rối bằng thuộc tính thẻ để truy cập vào một UIButtonnhận tại một UIButton với IPhone sở hữu thẻ

UIButton *randomButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect ]];  
    randomButton.frame = CGRectMake(205, 145, 90, 22); // size and position of button 
    [randomButton setTitle:@"Random" forState:UIControlStateNormal]; 
    randomButton.backgroundColor = [UIColor clearColor]; 
    randomButton.adjustsImageWhenHighlighted = YES; 
    [randomButton addTarget:self action:@selector(getrandom:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    randomButton.reversesTitleShadowWhenHighlighted=YES; 
    randomButton.toggleButton 

    [self.view addSubview:randomButton]; 

    randomButton.tag=333; 

Rồi sau này trong mã tôi cố gắng để có được tại các nút theo cách thức sau đây mà mang lại cho tôi một lỗi nói

không tương thích loại Objective-C khởi tạo 'struct UIView *', dự kiến ​​'struct UIButton *'

UIButton *random = [self.view viewWithTag:333]; 
    random.highlighted=NO; 

Trả lời

23

Hãy thử:

UIButton *random = (UIButton *)[self.view viewWithTag:333]; 

Ngoài ra, tại sao bạn gán thẻ sau khi bạn đã phát hành vào nút?

+0

Cảm ơn, mã của bạn đã loại bỏ cảnh báo của tôi. Toàn bộ việc giữ lại/giải phóng không nên ở đó. Mặc dù bây giờ tôi đã thành công khi nhận được nút Tôi không thể thay đổi trạng thái của nó thành "được đánh dấu". Tôi cố gắng làm điều này trong trình xử lý cho một sự kiện UIControlEventTouchUpInside. Về cơ bản, tôi có 3 nút mà tôi đang cố gắng triển khai hiệu ứng bật/tắt. Chỉ một nút xuất hiện được chọn tại một thời điểm – dubbeat

Các vấn đề liên quan