UIActionSheet - “init”更改按钮样式

时间:2013-05-18 18:27:37

标签: ios objective-c uiactionsheet init

为什么在分配和初始化一次后添加“Init”时,“取消”按钮的UIActionSheet上的按钮样式会改变?

如果我使用此代码,它会正确显示:

UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"Photo/Camera" delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Capture - Camera", @"Upload - Photo Library", nil];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];

enter image description here




如果我使用此代码(添加了...init]),它会正确显示并取消“取消”按钮样式:

UIActionSheet *popupQuery = [[[UIActionSheet alloc] initWithTitle:@"Photo/Camera" delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Capture - Camera", @"Upload - Photo Library", nil] init];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];

enter image description here

1 个答案:

答案 0 :(得分:2)

我认为这是一个好奇的问题(双重“初始化”没有正当理由)。

第二个init最有可能重置第一个initWithTitle...中设置的许多ivars。最明显的是cancelButtonIndex正在重置,因此“取消”按钮显示为常规按钮。