Trong trường hợp của tôi, tôi đã thêm một số UIBarButtonItem theo chương trình. Vấn đề chỉ sử dụng một cái nhìn vô hình như một archor là, nếu như trong trường hợp của tôi, kích thước của UIBarButtonItem đang thay đổi kích thước của nó, mũi tên của popover không xuất hiện trung tâm, và mặc dù nó hoạt động, trông hơi lạ.
Cách giải quyết.
Tạo một chế độ xem nhỏ trong bảng phân cảnh (kích thước không thực sự quan trọng), biến nó thành ẩn và liên kết nó. Trong trường hợp của tôi, điều này được gọi là invisibleViewAsArchor
Kết nối mục UIBarbutton với hành động sau.
-(IBAction) showMyPopover:(id)sender {
if([self.popoverController isPopoverVisible])
{
[self.popoverController dismissPopoverAnimated:YES];
}else{
self.invisibleViewAsArchor.frame = CGRectMake([sender view].frame.origin.x,
[sender view].frame.origin.y-50,
[sender view].frame.size.width,
[sender view].frame.size.height);
[self performSegueWithIdentifier:@"segue_to_something" sender:self];
}
}
như bạn có thể nhìn thấy trước khi nó cho thấy popover (với performSegueWithIdentifier), tôi đang thay đổi khung của Archor với các giá trị từ nút đó đã bị sa thải sự kiện này.
Hy vọng điều đó sẽ hữu ích.
Hi @GUiLTY, vì vậy tôi đang gặp vấn đề tương tự . Đã tự hỏi nếu "invisibleViewAsArchor" một lớp tôi cần phải thực hiện cho rằng xem? – gdubs
Hi @gdubs "invisibleViewAsAnchor" là một chế độ xem chuẩn và bên - (void) {viewDidLoad \t // sau khi mã của bạn ... \t self.invisibleViewAsArchor.hidden = TRUE; } – MiQUEL
Tối ưu hóa nhỏ (nhỏ): bạn không cần "trả lại" trong đó :) – narco