为什么在分配和初始化一次后添加“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];
如果我使用此代码(添加了...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];
答案 0 :(得分:2)
我认为这是一个好奇的问题(双重“初始化”没有正当理由)。
第二个init
最有可能重置第一个initWithTitle...
中设置的许多ivars。最明显的是cancelButtonIndex
正在重置,因此“取消”按钮显示为常规按钮。