Saya memiliki UIBarButtonItem yang membuka lembar tindakan untuk menawarkan pilihan kepada pengguna tentang apa yang harus dilakukan. Semuanya bekerja seperti yang diharapkan kecuali saya mencoba mengklik tombol "Batal". Target tombol tampaknya telah bergerak ke atas dari tempat seharusnya. Saya hanya dapat mengaktifkannya dengan mengklik di suatu tempat di tengah tombol "Batal" dan "Oke".
Saya telah mencoba di lembar tindakan di aplikasi lain dan berfungsi dengan baik, jadi bukan hanya ibu jari saya yang besar. Lembar tindakan dibuka di UIViewController
- (void)showOpenOptions
{
UIActionSheet *sheet = [[UIActionSheet alloc]
initWithTitle:NSLocalizedString(@"Open link in external application?", @"Open in external application")
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", @"Cancel")
destructiveButtonTitle:NSLocalizedString(@"Open Link", @"Open Link")
otherButtonTitles:nil];
[sheet showInView:self.view];
[sheet release];
}
ios
objective-c
iphone
cocoa-touch
uiactionsheet
raja nevan
sumber
sumber
Jawaban:
Alih-alih meneruskan tampilan pengontrol tampilan saat ini ke lembar tindakan, gunakan
showFromTabBar:
metodeUIActionSheet
.Cara yang Benar
Ini akan memberikan area yang dapat disadap dengan benar:
Cara Yang Salah
Ini akan menempatkan area yang dapat disentuh di tempat yang salah (jika Anda menggunakan bilah tab atau bilah alat):
Jika Anda menggunakan toolbar , gunakan
showFromToolbar:
metode sebagai gantinya. Anda memerlukan referensi ke toolbar, kemungkinan besar ivarMy Old Answer Juga berfungsi, tetapi hacky:
Baru saja menemukan jawaban yang mungkin:
http://openradar.appspot.com/6410780
Sunting: Ini bekerja dengan benar ketika saya mengubah tampilan menjadi tampilan tab bar
sumber
Saya menemukan jawaban di sini yang berhasil.
menggunakan:
[filterActionSheet showInView:[self.view window]]
:;saya mencoba beberapa cara untuk sampai ke bilah tab saya dan cara mereka mengatur aplikasi ini tampaknya berbelit-belit ...
sumber
Sebagai gantinya gunakan:
sumber
showInTabBar:
menjadishowFromTabBar:
. Perhatikan juga bahwa terdapat metode 'showFromToolbar: `, bergantung pada furnitur layar yang Anda miliki di bagian bawah layar. Ini, menurut saya, adalah jawaban yang lebih baik daripada jawaban yang diterima.Berikut cara memperbaikinya. Coba ini:
sumber
Saya pikir kombinasi dari tiga jawaban adalah cara yang tepat untuk menangani ini:
yaitu, gunakan showFromTabBar (itulah mengapa ada) dan Anda tidak memerlukan parentViewController seperti yang ditunjukkan Nathan (sebenarnya, self.parentViewController.tabBarController.tabBar mengembalikan nol untuk saya.
sumber
FYI - memiliki masalah yang sama dengan lembar tindakan UIDocumentInteractionController yang menginjak bilah tab. Gunakan yang berikut ini untuk memperbaikinya.
sumber
tulis kode sederhana
ini bekerja dengan baik
sumber