2011-07-06 31 views
5

Tôi đã tạo hai trang hoạt động trong một chế độ xem. Có hai nút, mỗi nút sẽ bắt đầu một trang tính.Tạo hai trang hoạt động trong một chế độ xem

Sự cố: khi tôi nhấn vào lựa chọn đầu tiên trong cả hai trang hoạt động, hành động tương tự sẽ được kích hoạt.

Dưới đây là mã của tôi:

-(IBAction) ChangeArrow:(id)sender{ 
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Change Arrow" 
                 delegate:self 
               cancelButtonTitle:@"cancel" 
              destructiveButtonTitle:@"Red" 
               otherButtonTitles:@"Blue",@"Black",nil]; 
[actionSheet showInView:self.view]; 
[actionSheet release];} 
- (void) actionSheet: (UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
if (buttonIndex ==[actionSheet destructiveButtonIndex]) { 
    self.bar.image=[UIImage imageNamed:@"red"]; 

} 
else if(buttonIndex == 1){ 
    self.bar.image=[UIImage imageNamed:@"blue"]; 

} 
else if(buttonIndex == 2){ 
    self.bar.image=[UIImage imageNamed:@"dark"];} 
} 

// Thứ hai Action tờ:

-(IBAction) Background:(id)sender{ 
UIActionSheet *actionSheet2 = [[UIActionSheet alloc] initWithTitle:@"Change Background" 
                 delegate:self 
               cancelButtonTitle:@"cancel" 
              destructiveButtonTitle:@"Sky" 
               otherButtonTitles:@"Thumbs",@"Smiley",nil]; 
[actionSheet2 showInView:self.view]; 
[actionSheet2 release]; 
} 
- (void) actionSheet2: (UIActionSheet *)actionSheet2 didDismissWithButtonIndex:(NSInteger)buttonIndex { 
if (buttonIndex ==[actionSheet2 destructiveButtonIndex]) { 
    self.background.image=[UIImage imageNamed:@"sky"]; 

} 
else if(buttonIndex == 1){ 
    self.background.image=[UIImage imageNamed:@"thumbs"]; 

} 
else if(buttonIndex == 2){ 
    self.background.image=[UIImage imageNamed:@"smiley"];} 
} 
+0

daniel dickison thnx, tôi vẫn có một số vấn đề khi viết mã: P –

Trả lời

25

Thiết lập thuộc tính thẻ trên mỗi actionsheet đến một giá trị khác nhau. Sau đó, bạn có thể kiểm tra sender.tag để xem bảng hành động nào được gọi là phương thức của bạn.

Ví dụ:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Change Arrow" 
                delegate:self 
              cancelButtonTitle:@"cancel" 
             destructiveButtonTitle:@"Red" 
              otherButtonTitles:@"Blue",@"Black",nil]; 
actionSheet.tag = 1; 
UIActionSheet *actionSheet2 = [[UIActionSheet alloc] initWithTitle:@"Change Arrow" 
                 delegate:self 
               cancelButtonTitle:@"cancel" 
              destructiveButtonTitle:@"Red" 
               otherButtonTitles:@"Blue",@"Black",nil]; 
actionSheet2.tag = 2; 

Sau đó

- (void) actionSheet: (UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
if(actionSheet.tag == 1) { 
    //do something 
} else if(actionSheet.tag == 2) { 
    //do something else 
} 
} 
+0

để thêm vào câu trả lời đúng của David, bạn kiểm tra xem người gửi đó là trong các đại biểu phương pháp. –

+0

và cách thực hiện điều này? –

+0

+1 cho David: xem ví dụ đã chỉnh sửa trong câu trả lời của Davids cho cách tốt nhất/dễ nhất –

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