2009-03-19 38 views
5

Tôi có cửa sổ bật lên hành động trong ứng dụng iphone của mình. Tôi muốn điền vào nó với các chuỗi từ một mảng thay vì các giá trị được xác định trước.Điền vào một bảng tác vụ với một mảng

Tôi không thể tìm thấy bất kỳ điều gì trực tuyến để thực hiện việc này! Có lẽ actionheet không phải là điều đúng để sử dụng?

Ngay bây giờ đây là những gì tôi đang sử dụng để xây dựng nó:

roomspopup = [ [ UIActionSheet alloc ] 
        initWithTitle: alertname 
        delegate: self 
        cancelButtonTitle: @"Cancel" 
        destructiveButtonTitle: nil 
        otherButtonTitles: @"Kitchen", "Dining Room", nil ]; 

Nhưng, thay vì "nhà bếp" và "Phòng ăn" Tôi muốn nó để điền vào từ một mảng. Kích thước của mảng (ví dụ: số lượng phòng) không phải là số cố định.

Trả lời

7

Bạn không thể làm điều đó trong một dòng. Bạn sẽ phải gọi initWithTitle bằng một bộ nút trống, sau đó thêm các nút khác của bạn bằng vòng lặp sử dụng addButtonWithTitle:.

14

@JimTrell

Cách để khắc phục điều đó sẽ được init UIActionSheet mà không có nút hủy bỏ và thêm nút này hủy bỏ sau khi bạn thêm các nút khác của bạn.

Đầu tiên init bảng với một loạt các con số không của:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose" 
         delegate:self 
         cancelButtonTitle:nil 
         destructiveButtonTitle:nil 
         otherButtonTitles:nil]; 

Sau đó lặp qua mảng của bạn với addButtonWithTitle: và cuối cùng là thêm nút hủy và thiết lập chỉ số của nó:

[actionSheet addButtonWithTitle:@"Cancel"]; 
[actionSheet setCancelButtonIndex:[yourArray count]]; 
+1

Nói chung: '[actionSheet setCancelButtonInd ví dụ: [actionSheet numberOfButtons] - 1]; ' – Nestor

0

tôi có thể thiết lập nút hủy ở cuối bằng cách sử dụng mã này:

anActionSheet = [[UIActionSheet alloc] initWithTitle:@"Change A/C" delegate:self 
    cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil, nil]; 

for (int i = 0; i < [arraylist count]; i++)  
    [anActionSheet addButtonWithTitle:[arraylist objectAtIndex:i]]; 

anActionSheet.cancelButtonIndex = [arraylist count];  
[anActionSheet addButtonWithTitle:@"Cancel"]; 
+0

anActionSheet.cancelButtonIndex = [arraylist count]; là điểm chính. U sẽ hv để khai báo sau khi lặp để nút hủy được thiết lập sau tất cả các nút khác. –

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