ฉันมีลำดับชั้นของตัวควบคุมมุมมองและตัวควบคุมด้านบนสุดจะแสดงเป็นโมดอลและต้องการทราบวิธีแสดงแถบนำทางเมื่อใช้
'UIViewController:presentViewController:viewControllerToPresent:animated:completion'
เอกสารสำหรับ 'presentViewController: animated: complete:' note:
'บน iPhone และ iPod touch มุมมองที่นำเสนอจะเป็นแบบเต็มหน้าจอเสมอ บน iPad งานนำเสนอจะขึ้นอยู่กับค่าในคุณสมบัติ modalPresentationStyle '
สำหรับ 'modalPresentationStyle' เอกสารจะกล่าวว่า:
รูปแบบการนำเสนอเป็นตัวกำหนดว่าจะแสดงตัวควบคุมมุมมองที่นำเสนอแบบโมดูลาร์อย่างไรบนหน้าจอ บน iPhone และ iPod touch ตัวควบคุมมุมมองแบบโมดอลจะแสดงแบบเต็มหน้าจอเสมอ แต่บน iPad มีตัวเลือกการนำเสนอที่แตกต่างกันมากมาย
มีวิธีใดบ้างที่จะทำให้แน่ใจว่าแถบนำทางสามารถมองเห็นได้ด้านล่างแถบสถานะเมื่อตัวควบคุมมุมมองแสดงขึ้นเอง ฉันควรตีความเอกสารว่าคุณไม่ได้รับตัวเลือกใด ๆ ของ iPhone / iPod และเฉพาะบน iPad
ก่อนหน้านี้ฉันใช้'UIViewController:presentModalViewController:animated'
ซึ่งใช้งานได้ดี แต่ตั้งแต่ iOS 5.0 เป็นต้นมา API ได้เลิกใช้งานแล้วฉันจึงเปลี่ยนไปใช้อันใหม่
มองเห็นสิ่งที่ฉันต้องการทำคือให้ตัวควบคุมใหม่เลื่อนเข้ามาจากด้านล่างของหน้าจอเช่นเดียวกับ API เก่าที่เคยทำ
[อัปเดตด้วยรหัส]:
// My root level view:
UIViewController *vc = [[RootViewController alloc]
initWithNibName:nil
bundle:[NSBundle mainBundle]];
navController = [[UINavigationController alloc] initWithRootViewController:vc];
....
// Within the RootViewController, Second view controller is created and added
// to the hierarchy. It is this view controller that is responsible for
// displaying the DetailView:
SecondTierViewController *t2controller = [[SecondTierViewController alloc]
initWithNibName:nil
bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:t2controller animated:YES];
// Created by SecondTierViewController
DetailViewController *controller = [[DetailViewController alloc] initWithNibName:nil
bundle:[NSBundle mainBundle]];
controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
controller.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.navigationController presentViewController:controller
animated:YES
completion:nil];