2015-07-09 22 views
7

Tôi có UITableViewController (tên của nó là Tin tức) và UIViewController (tên của nó là DetailViewController) và UISplitViewController. Tôi muốn nó hiển thị nút quay lại khi tôi sử dụng iPad theo hướng dọc. Tôi đã thực hiện nút nhưng tôi không thể đặt tên cho nó. Tôi đã viết mã sauCách đặt tên cho nút quay lại trong UISplitViewController

detailController.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem() 
       detailController.navigationItem.leftItemsSupplementBackButton = true 
       detailController.navigationItem.leftBarButtonItem?.title = navigationController?.topViewController.title 

Nhưng nó không hiển thị tên nút. Tôi chỉ thấy mũi tên (mũi tên hoạt động).

Tôi cũng đã cố gắng sau trong UITableViewController tôi (News) nhưng nó không giúp tôi

enter image description here

tôi sử dụng hai segues cho các thiết bị khác nhau với mã này.

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ 
     var screen = UIScreen.mainScreen().currentMode?.size.height 
     if (UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad) || screen >= 2000 && UIDevice.currentDevice().orientation.isLandscape == true && (UIDevice.currentDevice().userInterfaceIdiom == .Phone){ 
      performSegueWithIdentifier("showDetailParse", sender: nil) 
      self.dismissViewControllerAnimated(true, completion: nil) 
     } else if (UIDevice.currentDevice().userInterfaceIdiom == .Phone) { 
      performSegueWithIdentifier("showParse", sender: nil) 
     } 
    } 

kết quả của tôi trên một chiếc iPad enter image description here

kết quả của tôi trên một chiếc iPhone enter image description here

+0

đặt tiêu đề trên bộ điều khiển chế độ xem trước đó. nó trở thành tiêu đề nút quay lại cho bộ điều khiển xem tiếp theo – rounak

+0

Tôi đã làm nó giống như trên ảnh chụp màn hình của tôi. @rounak – Alexander

+0

Nó chỉ hoạt động cho tôi khi tôi sử dụng iPhone. @rounak – Alexander

Trả lời

12

Nhờ Paul Hegarty và bài giảng vô giá của ông tại Đại học Stanford và có sẵn trên iTunes U ... trong này trường hợp của ông 2013 bài giảng dưới tiêu đề "Developing iOS 7 Apps for iPhone and iPad" và đặc biệt "Bài giảng 11 Xem bảng và iPad".

Nếu bạn đang sử dụng kịch bản, sau đó:

  • Mở kịch bản chính của bạn và chọn Controller Navigation liên kết đến Master View Controller trong nhóm Split View điều khiển của bạn;
  • Mở Thanh tra;
  • Dưới tiêu đề Xem bộ điều khiển, đối với thuộc tính Tiêu đề, nhập các từ mà bạn muốn xuất hiện cùng với nút "Quay lại" chevron.

Xem ảnh chụp màn hình của Master Detail Xcode mẫu thiết lập với một Split View điều khiển ...

Interface Building screenshot detailing location of "Title" property for Navigation Controller

Nếu bạn đang instantiating quan điểm trong mã, sau đó:

  • được tham chiếu đến Bộ điều khiển Điều hướng cho bộ điều khiển Chế độ xem Chính;
  • đặt thuộc tính tiêu đề của Trình điều khiển điều hướng đó bằng NSString các từ mà bạn muốn xuất hiện cùng với nút "Quay lại" chevron.

Là một sang một bên, tôi sẽ khuyên bạn nên thực hiện Auto Layout và lớp Kích thước, mà bạn loại bỏ các văn bản cho Nút Quay lại tài sản và để cho các lớp học kích thước xác định những từ thích hợp cho nút Quay lại của bạn.

Ví dụ: theo câu hỏi ...

remove text in the "Back Button" property

1

Giải pháp:

Dưới đây là cách để khắc phục vấn đề với nút phía sau chi tiết xem điều khiển của:

  • Đối với bất kỳ điều khiển xem đó được đẩy lên primary ngăn xếp của bộ điều khiển điều hướng, đặt bộ điều khiển xem củatitle. (Hoặc trong phương pháp viewDidLoad: hoặc phương pháp prepareForSegue:sender: của bộ điều khiển đẩy.)
  • Đặt Bộ điều khiển điều hướng chính trong phương pháp điều khiển xem của trẻ em viewDidLoad:.

Ví dụ, trong MasterViewController.m:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [self setTitle:@"Foo"]; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    [[self navigationController] setTitle:[self title]]; 
} 

Điều này sẽ giữ danh hiệu nút quay lại quan điểm điều khiển của chi tiết đồng bộ với danh hiệu quan điểm điều khiển chính của đầu.

gì đang xảy ra:

UINavigationController, rootViewController của nó, và UINavigationItem từng có một tài sản title.

Lưu ý rằng the back button shown for a current view controller is actually the previous view controller's backButtonItem. (Xem Hình 1-7 Navigation cấu trúc thanh)

Một UINavigationController sẽ tự động được hưởng giá trị của title của bộ điều khiển xem gốc của nó, nhưng sẽ không tự động kế thừa danh hiệu của bất kỳ điều khiển khác mà được đẩy vào stack của nó. Đây là lý do tại sao, theo mặc định, nút quay lại của chi tiết chi tiết bộ điều khiển chế độ xem sẽ luôn hiển thị tiêu đề của bộ điều khiển chính điều khiển điều hướng gốc. Bạn có thể cấp phát, khởi tạo và đẩy nhiều bộ điều khiển xem con, nhưng chỉ có một trình điều khiển điều hướng được cấp phát và được khởi tạo cho mỗi bên của bộ điều khiển chế độ xem chia tách tiêu chuẩn.

Bên cạnh đó, title tài sản navigationItem 's một cái nhìn khiển của (có giá trị sẽ xuất hiện trong nhãn ở trung tâm của thanh điều hướng) không kế thừa giá trị của nó từ bộ điều khiển chuyển hướng, nhưng từ bộ điều khiển xem bản thân. Nếu bạn đặt thuộc tính title của bộ điều khiển chế độ xem thành "Thanh" và tiêu đề của bộ điều hướng chứa "Foo", nhãn được hiển thị ở giữa thanh điều hướng sẽ hiển thị "Thanh".

Các vấn đề liên quan