คำถามติดแท็ก uinavigationcontroller

คลาส UINavigationController ใช้ตัวควบคุมมุมมอง iOS เฉพาะที่จัดการการนำทางของเนื้อหาตามลำดับชั้น

14
iPhone ซ่อนแถบนำทางในหน้าแรกเท่านั้น
ฉันมีรหัสด้านล่างที่ซ่อนและแสดงแถบการนำทาง มันถูกซ่อนไว้เมื่อมุมมองแรกโหลดแล้วซ่อนเมื่อเรียกว่า "children" ปัญหาคือฉันไม่สามารถหากิจกรรม / การกระทำที่จะเรียกให้ซ่อนอีกครั้งเมื่อพวกเขากลับไปที่มุมมองรูต .... ฉันมีปุ่ม "ทดสอบ" บนหน้ารูทที่ดำเนินการด้วยตนเอง แต่มันไม่สวยและฉันต้องการให้มันเป็นแบบอัตโนมัติ -(void)hideBar { self.navController.navigationBarHidden = YES; } -(void)showBar { self.navController.navigationBarHidden = NO; }

17
วิธีปิดใช้งานท่าทางการปัดย้อนกลับใน UINavigationController บน iOS 7
ใน iOS 7 Apple เพิ่มพฤติกรรมการนำทางเริ่มต้นใหม่ คุณสามารถปัดจากขอบซ้ายของหน้าจอเพื่อย้อนกลับไปที่สแต็กการนำทาง แต่ในแอพของฉันพฤติกรรมนี้ขัดแย้งกับเมนูด้านซ้ายที่กำหนดเองของฉัน ดังนั้นจึงเป็นไปได้ที่จะปิดการใช้งานท่าทางใหม่นี้ใน UINavigationController?

14
วิธีซ่อนปุ่ม 'ย้อนกลับ' บนแถบนำทางบน iPhone
ฉันเพิ่มตัวควบคุมทิศทางเพื่อสลับระหว่างมุมมองในแอปของฉัน แต่มุมมองบางอย่างไม่ควรมีปุ่ม 'ย้อนกลับ' (ชื่อก่อนหน้า) ความคิดเห็นเกี่ยวกับวิธีซ่อนปุ่มย้อนกลับ?

12
วิธีการซ่อนแถบนำทางจาก ViewController แรกใน Swift
ฉันจะซ่อนแถบการนำทางจาก ViewController แรกหรือ ViewController เฉพาะอย่างรวดเร็วได้อย่างไร ฉันใช้รหัสต่อไปนี้ในviewDidLoad(): override func viewDidLoad() { super.viewDidLoad() self.navigationController?.isNavigationBarHidden = true } และบนviewWillAppear: override func viewWillAppear(animated: Bool) { self.navigationController?.isNavigationBarHidden = true } ทั้งสองวิธีซ่อนตัวควบคุมการนำทางจาก ViewControllers ทั้งหมด

25
วิธีการเปลี่ยนภาพเคลื่อนไหว Push และ Pop ในแอพที่ใช้การนำทาง
ฉันมีแอพพลิเคชั่นที่ใช้การนำทางและฉันต้องการเปลี่ยนภาพเคลื่อนไหวของภาพเคลื่อนไหวแบบพุชและป๊อป ฉันจะทำอย่างไร แก้ไข 2018 มีคำตอบมากมายสำหรับคำถามนี้และขณะนี้ค่อนข้างนานแล้วฉันได้เลือกคำตอบอีกครั้งสำหรับสิ่งที่ฉันเชื่อว่าเกี่ยวข้องที่สุด หากมีใครที่คิดเป็นอย่างอื่นโปรดแจ้งให้เราทราบในความคิดเห็น

27
ดำเนินการแอ็คชันเมื่อกดปุ่ม back bar ของ UINavigationController
ฉันต้องดำเนินการกระทำ (การล้างอาร์เรย์) เมื่อกดปุ่มย้อนกลับของ a UINavigationControllerในขณะที่ปุ่มยังคงทำให้ก่อนหน้านี้ViewControllerบนสแต็กปรากฏ ฉันจะทำสิ่งนี้ให้สำเร็จโดยใช้สวิฟท์ได้อย่างไร

21
วิธีเพิ่มปุ่มขวาให้กับ UINavigationController?
ฉันกำลังพยายามเพิ่มปุ่มรีเฟรชลงในแถบด้านบนของตัวควบคุมทิศทางโดยไม่ประสบความสำเร็จ นี่คือส่วนหัว: @interface PropertyViewController : UINavigationController { } นี่คือวิธีที่ฉันพยายามเพิ่ม: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)]; self.navigationItem.rightBarButtonItem = anotherButton; } return self; }

29
การตั้งค่าการกระทำสำหรับปุ่มย้อนกลับในตัวควบคุมทิศทาง
ฉันพยายามเขียนทับการกระทำเริ่มต้นของปุ่มย้อนกลับในตัวควบคุมทิศทาง ฉันได้กำหนดเป้าหมายให้กับการกระทำบนปุ่มที่กำหนดเอง สิ่งที่แปลกคือเมื่อกำหนดมันแม้ว่าแอตทริบิวต์ backbutton มันไม่ได้ใส่ใจกับพวกเขาและมันก็ปรากฏมุมมองปัจจุบันและกลับไปที่ราก: UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle: @"Servers" style:UIBarButtonItemStylePlain target:self action:@selector(home)]; self.navigationItem.backBarButtonItem = backButton; ทันทีที่ฉันตั้งค่าผ่านทางleftBarButtonItemบนnavigationItemมันเรียกการกระทำของฉัน แต่แล้วปุ่มดูเหมือนรอบหนึ่งแทนการกดลูกศรกลับหนึ่ง: self.navigationItem.leftBarButtonItem = backButton; ฉันจะให้มันเรียกการกระทำที่กำหนดเองของฉันก่อนที่จะกลับไปที่มุมมองรูตได้อย่างไร มีวิธีการเขียนทับการกระทำกลับเป็นค่าเริ่มต้นหรือมีวิธีที่มักจะเรียกเมื่อออกจากมุมมอง ( viewDidUnloadไม่ทำอย่างนั้น)?

11
แถบการนำทางแสดง / ซ่อน
ฉันมีแอพที่มีแถบนำทางซึ่งประกอบด้วยปุ่ม 2 ปุ่ม ฉันต้องการซ่อนและแสดงแถบนำทางนี้เมื่อผู้ใช้แตะหน้าจอสองครั้ง เริ่มแรกควรซ่อนแถบการนำทาง เมื่อผู้ใช้แตะหน้าจอสองครั้งแถบนำทางควรปรากฏขึ้นพร้อมกับภาพเคลื่อนไหวเช่นเดียวกับที่สามารถเห็นได้ในแกลเลอรี่รูปภาพของ iPhone ฉันจะทำสิ่งนี้ได้อย่างไร ข้อเสนอแนะได้รับการชื่นชมเสมอ

14
วิธีซ่อนปุ่ม“ ย้อนกลับ” ใน UINavigationController
คุณรู้วิธีซ่อนปุ่ม 'ย้อนกลับ' ใน UINavigationController หรือไม่? นอกจากนี้วิธีการแสดงมันกลับ แต่ฉันคิดว่ามันคล้ายกันมากกับการซ่อนมัน ... เช่นเดียวกับแอปพลิเคชันอีเมลบน iPhone เมื่อคุณกด 'แก้ไข' ในขณะที่ดูอีเมล

25
จะบังคับมุมมองการวางแนวของคอนโทรลเลอร์ใน iOS 8 ได้อย่างไร?
ก่อน iOS 8 เราใช้โค้ดด้านล่างร่วมกับการสนับสนุนInInterfaceOrientationsและควรAutoAutoRotateวิธีการมอบสิทธิ์ในการบังคับให้วางแนวแอพในทิศทางใด ๆ ฉันใช้ข้อมูลโค้ดด้านล่างเพื่อหมุนแอปตามทิศทางที่ต้องการโดยทางโปรแกรม ประการแรกฉันกำลังเปลี่ยนการวางแนวแถบสถานะ จากนั้นเพียงแค่นำเสนอและยกเลิกมุมมองที่เป็นโมฆะทันทีหมุนมุมมองไปยังทิศทางที่ต้องการ [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES]; UIViewController *c = [[UIViewController alloc]init]; [self presentViewController:vc animated:NO completion:nil]; [self dismissViewControllerAnimated:NO completion:nil]; แต่นี่คือความล้มเหลวใน iOS 8 นอกจากนี้ฉันได้เห็นคำตอบบางอย่างในกองล้นที่คนแนะนำว่าเราควรหลีกเลี่ยงวิธีนี้จาก iOS 8 เป็นต้นไป เพื่อให้เฉพาะเจาะจงมากขึ้นแอปพลิเคชันของฉันเป็นแอปพลิเคชันที่เป็นสากล มีตัวควบคุมทั้งหมดสามตัว ตัวควบคุม First View - มันควรรองรับการหมุนใน iPad และแนวตั้งเท่านั้น (ปุ่มโฮมลง) ใน iPhone ตัวควบคุมมุมมองที่สอง - มันควรรองรับเฉพาะแนวนอนในทุกสภาวะ ตัวควบคุมมุมมองที่สาม - ควรสนับสนุนแนวนอนเท่านั้นในทุกสภาวะ เรากำลังใช้ตัวควบคุมทิศทางสำหรับการนำทางหน้าเว็บ …

16
ข้อความที่กำหนดเอง UINavigationController“ ปุ่มย้อนกลับ”?
ปุ่ม "ย้อนกลับ" ของUINavigationControllerโดยค่าเริ่มต้นจะแสดงชื่อของมุมมองล่าสุดในสแต็ก มีวิธีที่จะมีข้อความที่กำหนดเองในปุ่มย้อนกลับแทนหรือไม่?

8
ฉันจะรับ RootViewController จากคอนโทรลเลอร์ที่มีการพุชได้อย่างไร
ดังนั้นฉันดันดูควบคุมจาก RootViewController เช่น: [self.navigationController pushViewController: anotherViewController เคลื่อนไหว: YES]; แต่anotherViewControllerตอนนี้ฉันต้องการเข้าถึง RootViewController อีกครั้ง ฉันกำลังพยายาม // (ข้างใน anotherViewController ทันที) /// RootViewController * root = (RootViewController *) self.parentViewController; // ไม่ใช่ // ผิดพลาด RootViewController * root = (RootViewController *) [self.navigationController.viewControllers objectAtIndex: 0]; // ใช่ !! มันได้ผล ฉันไม่แน่ใจว่าทำไมจึงใช้งานได้และไม่แน่ใจว่าเป็นวิธีที่ดีที่สุด ใครบางคนสามารถแสดงความคิดเห็นเกี่ยวกับวิธีที่ดีกว่าในการรับ RootViewController จากคอนโทรลเลอร์ที่คุณส่งไปยัง navigationViewer ของ RootViewController และไม่ว่าวิธีที่ฉันทำนั้นเชื่อถือได้หรือไม่

13
รับความสูงของแถบนำทางโดยทางโปรแกรม
ฉันรู้ว่าการมีอยู่ของตัวควบคุมมุมมองเพิ่มเติม (แถบการนำทาง) ผลัก UIView ลงตามความสูง ฉันก็รู้ว่าความสูงนี้ = 44px [self.view].frame.origin.y = 0ฉันได้ค้นพบว่าการผลักดันลงนี้รักษา ดังนั้นฉันจะกำหนดความสูงของแถบนำทางได้อย่างไรนอกเหนือจากการตั้งค่าเป็นค่าคงที่ได้อย่างไร หรือรุ่นที่สั้นกว่าฉันจะทราบได้อย่างไรว่า UIView ของฉันแสดงพร้อมแถบนำทางด้านบน หลอดไฟเริ่มเข้ามา น่าเสียดายที่ฉันไม่ได้ค้นพบวิธีที่เหมือนกันในการแก้ไขปัญหาดังที่อธิบายไว้ด้านล่าง ฉันเชื่อว่าปัญหาทั้งหมดของฉันมุ่งเน้นไปที่งานรับอัตโนมัติของฉัน และเหตุผลที่ฉันได้ข้อสรุปว่ามีอาการเดียวกันอยู่โดยมีหรือไม่มี UIWebView และอาการนั้นก็คือทุกอย่างนั้นมีสีพีชสำหรับรูปคน สำหรับแนวนอน UIButton ส่วนใหญ่ที่อยู่ด้านล่างจะปรากฏขึ้นด้านหลัง TabBar ตัวอย่างเช่นฉันมี UIView หนึ่งรายการจากบนลงล่าง: UIView - ทั้งชุดสปริง (ตัวพิมพ์ดีฟอลต์) และไม่มี struts UIScrollView - ถ้าฉันตั้งค่าสปริงทั้งสองและล้างทุกอย่างอื่น (เช่น UIView) UIButton จะบุกรุกวัตถุบนเหนือมันทันที หากฉันล้างทุกอย่าง UIButton จะใช้ได้ แต่สิ่งที่ซ่อนอยู่ด้านบนสุดด้านหลัง StatusBar การตั้งค่าเฉพาะ strut ด้านบน UIButton …

8
IOS7: UIScrollView offset ใน UINavigationController
ขณะนี้ฉันกำลังย้ายแอปของฉันบน iOS 7 และฉันติดอยู่เป็นเวลาหลายชั่วโมงในการจัดการตัวควบคุม / แถบนำทางใหม่ ก่อนหน้านี้เมื่อเรามีตัวควบคุมการนำทางเรามีตัวอย่างข้อมูลดังนี้: UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]]; ในตัวสร้างอินเทอร์เฟซเรามีตัวเลือกในการตั้งค่าแถบนำทางที่มีอยู่สำหรับมุมมองและทุกอย่างตรงกับเนื้อหาของมุมมองจริง ตกลงตอนนี้ฉันไม่รู้ว่าจะออกแบบอย่างไรให้เหมาะสมกับตัวสร้างอินเทอร์เฟซ ฉันยังมีตัวอย่างข้อมูลเพื่อเริ่มต้นระบบนำทาง อย่างไรก็ตามในตัวสร้างอินเทอร์เฟซสำหรับ MainViewController ของฉันหากฉันตั้งค่าแถบสถานะเป็นแถบนำทางโปร่งแสงหรือทึบแสงฉันจะมีออฟเซ็ต 44px ที่ด้านบน (ดูด้านล่าง) ตัวสร้างอินเทอร์เฟซ _________________________ และผลลัพธ์ ตอนนี้ถ้าฉันตั้งค่าแถบสถานะเป็นไม่มีจะไม่มีการชดเชยที่ด้านบน แต่เนื่องจากมุมมองบนโปรแกรมจำลองมีขนาดเล็กลงเนื่องจากแถบนำทางด้านล่างของมุมมองในตัวสร้างอินเทอร์เฟซจึงถูกตัดออก ตัวสร้างอินเทอร์เฟซ _________________________ และผลลัพธ์ ฉันเดาว่าฉันพลาดอะไรบางอย่างที่นี่จริงๆ แต่ฉันไม่พบหัวข้อหรือข้อมูล Apple ในคู่มือการเปลี่ยน iOS7 เกี่ยวกับเรื่องนั้น ขอบคุณสำหรับความช่วยเหลือของคุณ แก้ไข ดังที่เราเห็นในภาพลูกคนแรกของมุมมองคือ UIScrollView ซึ่งมีป้ายกำกับทั้งสองปัญหาจะไม่ปรากฏขึ้นเมื่อไม่มีมุมมองแบบเลื่อน นอกจากนี้ยังปรากฏหากเป็น UITableView หากป้ายกำกับอยู่นอก UIScrollView จะไม่มีการชดเชยป้ายกำกับนั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.