ในแอพ iPhone ที่ใช้ UINavigationController ในวิธีการหนึ่งฉันต้องการดำเนินการที่เทียบเท่ากับโปรแกรมของปุ่มย้อนกลับที่กดและย้อนกลับไปดู
เช่นกดปุ่มงานโดยอัตโนมัติตามที่เห็นที่นี่:

มีการโทร iOS ทั่วไปที่ฉันสามารถโทรได้หรือต้องการข้อมูลเพิ่มเติมหรือไม่?
ในแอพ iPhone ที่ใช้ UINavigationController ในวิธีการหนึ่งฉันต้องการดำเนินการที่เทียบเท่ากับโปรแกรมของปุ่มย้อนกลับที่กดและย้อนกลับไปดู
เช่นกดปุ่มงานโดยอัตโนมัติตามที่เห็นที่นี่:

มีการโทร iOS ทั่วไปที่ฉันสามารถโทรได้หรือต้องการข้อมูลเพิ่มเติมหรือไม่?
คำตอบ:
UINavigationController's -popViewControllerAnimated:วิธีการควรจะทำสิ่งที่คุณต้องการ:
[navigationController popViewControllerAnimated:YES];
[self.navigationController popViewControllerAnimated:YES];แต่มันไม่ได้ทำอะไรเลยอย่างไรก็ตามมีการแจ้งเตือนเมื่อแตะปุ่มที่ใช้งาน
สมมติว่าคุณไม่ต้องการกดปุ่มโดยใช้โปรแกรม แต่เพียงแค่คัดลอกผลลัพธ์ของการกดปุ่มคุณควรบอกให้ตัวควบคุมการนำทางเปิดตัวควบคุมมุมมองปัจจุบัน
[self.navigationController popViewControllerAnimated:YES];
สิ่งนี้จะลบออกจากสแต็กและนำคุณกลับไปยังตัวควบคุมมุมมองก่อนหน้า
Swift 3.0
กลับไปที่มุมมองราก
self.navigationController?.popToRootViewController(animated: true)
กลับไปที่มุมมองก่อนหน้า
self.navigationController?.popViewController(animated: true)
Swift 2.3
กลับไปที่มุมมองราก
self.navigationController?.popToRootViewControllerAnimated(true)
กลับไปที่มุมมองก่อนหน้า
self.navigationController?.popViewControllerAnimated(true)
คุณควรโทร
popViewControllerAnimated:
ซึ่งตรงข้ามกับการเพิ่มตัวควบคุมมุมมองด้วย pushViewController:animated:
[self.navigationController popViewControllerAnimates:YES];
เป็นตัวเลือกที่ดีที่สุด แต่ถ้าคุณไม่ได้อยู่ในคลาสตัวควบคุมมุมมองเดียวกันหรือตัวแทนของคุณเปลี่ยนแปลงก่อนที่จะเรียกวิธีปุ่มย้อนกลับคุณสามารถลอง -
ก่อนอื่นคุณต้องกำหนดปุ่มย้อนกลับ -
UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)];
[[self navigationItem] setBackBarButtonItem: newBackButton];
[newBackButton release];
จากนั้นในวิธี backButtonTapped คุณสามารถเรียก -
[self.navigationController pushViewController:desiredViewController animated:YES];