Sebelum iOS 8, kami menggunakan kode di bawah ini dalam hubungannya dengan metode InterfaceOrientations yang didukung dan metode delegasi shouldAutoRotate untuk memaksa orientasi aplikasi ke orientasi tertentu. Saya menggunakan potongan kode di bawah ini untuk memutar aplikasi ke orientasi yang diinginkan. Pertama, saya mengubah orientasi bilah status. Dan kemudian hanya menampilkan dan segera menolak tampilan modal memutar tampilan ke orientasi yang diinginkan.
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
Tapi ini gagal di iOS 8. Juga, saya telah melihat beberapa jawaban di stack overflow di mana orang menyarankan agar kita selalu menghindari pendekatan ini dari iOS 8 dan seterusnya.
Untuk lebih spesifik, aplikasi saya adalah tipe aplikasi universal. Ada tiga pengontrol secara total.
Pengontrol Tampilan Pertama - Ini harus mendukung semua orientasi di iPad dan hanya potret (tombol home down) di iPhone.
Pengontrol Tampilan Kedua - Seharusnya hanya mendukung lansekap tepat di semua kondisi
Pengontrol Tampilan Ketiga - Seharusnya hanya mendukung lanskap tepat di semua kondisi
Kami menggunakan pengontrol navigasi untuk navigasi halaman. Dari pengontrol tampilan pertama, pada aksi klik tombol, kami mendorong yang kedua pada stack. Jadi, ketika pengontrol tampilan kedua tiba, terlepas dari orientasi perangkat, aplikasi hanya akan mengunci lansekap.
Di bawah ini adalah saya shouldAutorotate
dan supportedInterfaceOrientations
metode di controller tampilan kedua dan ketiga.
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}
-(BOOL)shouldAutorotate {
return NO;
}
Apakah ada solusi untuk ini atau cara yang lebih baik untuk mengunci view controller dalam orientasi tertentu untuk iOS 8. Tolong bantu !!