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

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

16
จะตรวจสอบได้อย่างไรว่าตัวควบคุมมุมมองถูกนำเสนอแบบโมฆะหรือถูกผลักบนสแต็กการนำทาง?
ฉันจะแยกความแตกต่างระหว่าง: นำเสนออย่างสุภาพ ผลักบนสแตกการนำทาง ทั้งสองอย่างpresentingViewControllerและisMovingToParentViewControllerอยู่YESในทั้งสองกรณีจึงไม่เป็นประโยชน์มากนัก สิ่งที่ทำให้เกิดความซับซ้อนคือบางครั้งตัวควบคุมมุมมองหลักของฉันเป็นกิริยาช่วยซึ่งตัวควบคุมมุมมองที่ต้องตรวจสอบจะถูกผลัก ปรากฎว่าปัญหาของฉันคือฉันฝังลงHtmlViewControllerในสิ่งUINavigationControllerที่จะนำเสนอแล้ว นั่นเป็นเหตุผลที่ความพยายามของฉันเองและคำตอบที่ดีด้านล่างไม่ได้ผล HtmlViewController* termsViewController = [[HtmlViewController alloc] initWithDictionary:dictionary]; UINavigationController* modalViewController; modalViewController = [[UINavigationController alloc] initWithRootViewController:termsViewController]; modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentViewController:modalViewController animated:YES completion:nil]; ฉันเดาว่าฉันควรบอกตัวควบคุมมุมมองของฉันดีกว่าเมื่อมันเป็นกิริยาแทนที่จะพยายามกำหนด

10
SplitView เหมือนแอพ Facebook บน iPhone
ฉันต้องการสร้างแอพiPhoneที่ใช้ฉากการนำทางที่คล้ายกับรูปภาพในลิงค์ โปรดทราบว่าฉันไม่ต้องการให้สิ่งนี้ใช้ได้กับ iPad เท่านั้นฉันต้องการให้มันใช้งานได้กับ iPhone ตามภาพเมื่อคุณคลิกที่รายการมุมมองตารางมันจะซ่อนมุมมองตารางและทำให้ดูเต็มหน้าจอ ฉันต้องการไอเดียในการทำสิ่งนี้เพราะฉันคิดไม่ออก ขอบคุณ

15
UIRefreshControl - startRefreshing ไม่ทำงานเมื่อ UITableViewController อยู่ใน UINavigationController
ฉันได้ตั้งค่า UIRefreshControl ใน UITableViewController ของฉัน (ซึ่งอยู่ใน UINavigationController) และทำงานได้ตามที่คาดไว้ (เช่นการดึงลงจะทำให้เหตุการณ์ที่ถูกต้อง) อย่างไรก็ตามหากฉันเรียกใช้beginRefreshingวิธีการอินสแตนซ์โดยทางโปรแกรมบนตัวควบคุมการรีเฟรชเช่น: [self.refreshControl beginRefreshing]; ไม่มีอะไรเกิดขึ้น. มันควรจะเคลื่อนไหวลงและแสดงสปินเนอร์ endRefreshingวิธีการทำงานอย่างถูกต้องเมื่อผมเรียกว่าหลังจากการฟื้นฟู ฉันสร้างโครงการต้นแบบพื้นฐานด้วยพฤติกรรมนี้และทำงานได้อย่างถูกต้องเมื่อ UITableViewController ของฉันถูกเพิ่มลงในตัวควบคุมมุมมองรูทของผู้รับมอบสิทธิ์โดยตรงเช่น: self.viewController = tableViewController; self.window.rootViewController = self.viewController; แต่ถ้าฉันจะเพิ่มtableViewControllerการ UINavigationController เป็นครั้งแรกแล้วเพิ่มควบคุมการนำเป็นrootViewControllerที่beginRefreshingทำงานของวิธีการไม่ได้ เช่น UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableViewController]; self.viewController = navController; self.window.rootViewController = self.viewController; ความรู้สึกของฉันคือมีบางอย่างเกี่ยวข้องกับลำดับชั้นมุมมองที่ซ้อนกันภายในตัวควบคุมการนำทางไม่ได้เล่นได้ดีกับตัวควบคุมการทบทวน - ข้อเสนอแนะใด ๆ ? ขอบคุณ

6
UINavigationController ที่ไม่มีแถบนำทาง?
ฉันมีแอปสากลและในเวอร์ชัน iPad ฉันใช้UISplitViewControllerเพื่อสร้างอินเทอร์เฟซที่คล้ายกับแอป Mail ฉันประสบปัญหาในการส่งมุมมองรายละเอียดใหม่ดังนั้นฉันจึงตัดสินใจที่จะใช้UINavigationControllerเพื่อให้ฉันสามารถพุชและป๊อปดูได้ตามต้องการ อย่างไรก็ตามฉันไม่ต้องการใช้มุมมองการนำทางหรือแถบเครื่องมือ แต่ไม่ว่าจะทำยังไงฉันก็ซ่อนแถบนำทางไม่ได้ ฉันได้ลองยกเลิกการเลือก "แสดงแถบการนำทาง" ใน IB แล้วและฉันได้ลองตั้งค่าด้วย: [self.navigationController setNavigationBarHidden:YES]; ในviewDidLoad/ viewDidAppear/ viewWillAppear. ฉันยังได้ลองใช้ในแต่ละมุมมองที่จะผลักดัน ไม่มีอะไรทำงาน มีบางอย่างที่ฉันขาดหายไปที่นี่? เป็นไปได้ไหมที่จะUINavigationControllerไม่มีแถบเครื่องมือหรือแถบนำทาง?

12
พฤติกรรม uitableview แปลก ๆ ใน iOS11 เซลล์เลื่อนขึ้นพร้อมกับแอนิเมชั่นแบบพุชการนำทาง
ฉันเพิ่งย้ายรหัสบางส่วนไปยัง iOS 11 beta 5 SDK ใหม่ ตอนนี้ฉันได้รับพฤติกรรมที่สับสนมากจาก UITableView Tableview เองก็ไม่ได้แฟนซีขนาดนั้น ฉันมีเซลล์ที่กำหนดเอง แต่ส่วนใหญ่เป็นเพียงความสูง เมื่อฉันดันตัวควบคุมมุมมองด้วย tableview ฉันจะได้รับภาพเคลื่อนไหวเพิ่มเติมโดยที่เซลล์ "เลื่อนขึ้น" (หรืออาจจะเปลี่ยนกรอบมุมมองตารางทั้งหมด) และลงพร้อมกับภาพเคลื่อนไหวการนำทางแบบพุช / ป๊อป โปรดดู gif: ฉันสร้างด้วยตนเองtableviewในloadViewวิธีการและรูปแบบการตั้งค่าอัตโนมัติ จำกัด จะเท่ากับชั้นนำต่อท้ายด้านบนด้านล่างของ SuperView tableview ของ ซูเปอร์วิวคือมุมมองรูทของตัวควบคุมมุมมอง ดูรหัสการผลักดันคอนโทรลเลอร์เป็นมาตรฐานมาก: self.navigationController?.pushViewController(notifVC, animated: true) รหัสเดียวกันให้การทำงานปกติบน iOS 10 คุณช่วยชี้ทิศทางของสิ่งที่ผิดได้ไหม แก้ไข: ฉันได้สร้างตัวควบคุม tableview ที่เรียบง่ายมากและฉันสามารถสร้างพฤติกรรมเดียวกันได้ที่นั่น รหัส: class VerySimpleTableViewController : UITableViewController { override func …

9
ตัวจัดการความสมบูรณ์สำหรับ UINavigationController“ pushViewController: animated”?
ฉันกำลังสร้างแอปโดยใช้UINavigationControllerเพื่อนำเสนอตัวควบคุมมุมมองถัดไป ด้วย iOS5 มีวิธีการนำเสนอใหม่UIViewControllers: presentViewController:animated:completion: ตอนนี้ฉันถามฉันว่าทำไมไม่มีตัวจัดการที่สมบูรณ์สำหรับUINavigationController? มีเพียง pushViewController:animated: มันเป็นไปได้ที่จะสร้างเสร็จจัดการของตัวเองเหมือนใหม่presentViewController:animated:completion:?

7
วิธีรับตัวควบคุมมุมมองรูท
ฉันต้องการอินสแตนซ์ของตัวควบคุมมุมมองรูท ฉันลองวิธีการเหล่านั้น: UIViewController *rootViewController = (UIViewController*)[[[UIApplication sharedApplication] keyWindow] rootViewController]; ผลตอบแทน: null : นอกจากนี้เมื่อฉันพยายามรับอาร์เรย์ของคอนโทรลเลอร์: NSArray *viewControllers = self.navigationController.viewControllers; ส่งคืนคอนโทรลเลอร์เพียงตัวเดียว แต่ไม่ใช่ตัวควบคุมมุมมองรูทของฉัน หากฉันพยายามใช้ตัวควบคุมการนำทาง: UIViewController *root = (UIViewController*)[self.navigationController.viewControllers objectAtIndex:0]; ผลตอบแทน: null : ความคิดใด ๆ ทำไม? ฉันจะลองใช้อินสแตนซ์ของตัวควบคุมมุมมองรูทของฉันได้อย่างไร ขอบคุณ.


12
ปุ่มโทรกลับใน navigationController ใน iOS
ฉันได้ผลักมุมมองไปยังตัวควบคุมการนำทางและเมื่อฉันกดปุ่มย้อนกลับมันจะไปที่มุมมองก่อนหน้าโดยอัตโนมัติ ฉันต้องการทำบางสิ่งเมื่อกดปุ่มย้อนกลับก่อนที่จะเปิดมุมมองออกจากสแต็ก ฟังก์ชันเรียกกลับปุ่มย้อนกลับคืออะไร?

14
การลบวิวคอนโทรลเลอร์ออกจากสแต็กการนำทาง
ฉันมีสแต็กการนำทางพร้อมด้วย UIViewControllers 5 ตัว ฉันต้องการลบตัวควบคุมวิวตัวที่ 3 และ 4 ในสแต็กเมื่อคลิกปุ่มในตัวควบคุมวิวตัวที่ 5 เป็นไปได้ไหมที่จะทำเช่นนี้? ถ้าเป็นอย่างไร

12
เงาดำบนแถบนำทางระหว่างการเปลี่ยนภาพหลังจากอัปเกรดเป็น Xcode 5.1 และ iOS 7.1
เมื่อฉันนำทางไปมาระหว่างพาเรนต์และคอนโทรลเลอร์รองในตัวควบคุมการนำทางหลักโดยละเอียดฉันเห็นเงาดำทางด้านขวาของแถบนำทางที่ด้านบน เริ่มต้นหลังจากที่ฉันอัปเกรดเป็น Xcode 5.1 รู้สึกหยาบและเสียสมาธิ ฉันจะกำจัดมันได้อย่างไร?

12
ตั้งค่าคลาสย่อยที่กำหนดเองของ UINavigationBar ใน UINavigationController โดยทางโปรแกรม
มีใครทราบบ้างว่าฉันจะใช้คลาสย่อยที่กำหนดเองได้UINavigationBarอย่างไรหากฉันสร้างอินสแตนซ์แบบUINavigationControllerโปรแกรม (โดยไม่มี IB) ลากUINavigationControllerใน IB แสดงให้ฉันเห็นภายใต้แถบนำทางและการใช้ Identity Inspectory ฉันสามารถเปลี่ยนประเภทคลาสและตั้งค่าคลาสย่อยของฉันเองได้UINavigationBarแต่โดยทางโปรแกรมฉันทำไม่ได้navigationBarคุณสมบัติของ Navigation Controller เป็นแบบอ่านอย่างเดียว ... ฉันควรทำอย่างไรเพื่อปรับแต่งแถบนำทางโดยใช้โปรแกรม IB "มีประสิทธิภาพ" มากกว่า "รหัส" หรือไม่? ฉันเชื่อว่าทุกสิ่งที่ทำได้ใน IB สามารถทำได้โดยใช้โปรแกรม

18
ฉันจะแสดงสองมุมมองพร้อมกันจากตัวควบคุมการนำทางได้อย่างไร
ฉันต้องการปรากฏในมุมมองที่สามบนสแต็กการนำทางกลับไปที่มุมมองแรก ฉันรู้วิธีแสดงหนึ่งมุมมองพร้อมกัน: [self.navigationController popViewControllerAnimated:YES]; แต่ฉันจะทำสองอย่างพร้อมกันได้อย่างไร?

21
Popover ที่มีตัวควบคุมการนำทางในตัวไม่เคารพขนาดของการนำทางย้อนกลับ
ฉันมี UIPopoverController ที่โฮสต์ UINavigationController ซึ่งมีลำดับชั้นเล็ก ๆ ของตัวควบคุมมุมมอง ฉันติดตามเอกสารและสำหรับตัวควบคุมมุมมองแต่ละตัวฉันตั้งค่าขนาดบริบทป๊อปโอเวอร์ของมุมมองดังนี้: [self setContentSizeForViewInPopover:CGSizeMake(320, 500)]; (ขนาดแตกต่างกันสำหรับแต่ละคอนโทรลเลอร์) สิ่งนี้ทำงานได้ตามที่คาดไว้เมื่อฉันเลื่อนไปข้างหน้าในลำดับชั้น - ป๊อปโอเวอร์จะเคลื่อนไหวการเปลี่ยนแปลงขนาดโดยอัตโนมัติเพื่อให้สอดคล้องกับตัวควบคุมแบบพุช อย่างไรก็ตามเมื่อฉันนำทาง "ย้อนกลับ" ผ่านสแต็กมุมมองผ่านปุ่มย้อนกลับของแถบนำทางป๊อปโอเวอร์จะไม่เปลี่ยนขนาด แต่จะยังคงมีขนาดใหญ่เท่ากับมุมมองที่ลึกที่สุด สิ่งนี้ดูเหมือนจะพังทลายสำหรับฉัน ฉันคาดหวังให้ป๊อปโอเวอร์เป็นไปตามขนาดที่ตั้งค่าเมื่อปรากฏผ่านสแต็กมุมมอง ฉันพลาดอะไรไปรึเปล่า? ขอบคุณ.

5
วิธีการวาด UIToolbar หรือ UINavigationBar แบบโปร่งใสใน iOS7
ผมอยากจะโปร่งใสทั้งหมดและUIToolbar / หรือ UINavigationBarฉันได้ลองใช้คาถาต่างๆที่แนะนำสำหรับ iOS 5 ก่อนและหลัง แต่ดูเหมือนจะไม่มีผลอีกต่อไป สิ่งนี้จะสำเร็จได้อย่างไรใน iOS 7?

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