2011-12-19 23 views
6

Tôi gặp khó khăn trong vấn đề này. My MainWindow.xib, có một số NavigationController, chế độ xem được kế thừa từ một số khác xib.MonoTouch.Dialog: Mục sau trong NavigationBar

Bây giờ, tôi đẩy DialogViewController từ chế độ xem chính, nhưng tôi không thể nhìn thấy nút quay lại trên thanh điều hướng của chế độ xem thứ hai.

Có bất kỳ điều gì cụ thể mà tôi cần đặt cho số DialogViewController khi nó đang được đẩy từ số UIViewController.

Cảm ơn và chúc Abhishek

Trả lời

14

Các nhà xây dựng cho DialogViewController có một tham số gọi là đẩy mà bạn nên thiết lập là true:

new DialogViewController(rootElement, true); // true will show the back button 
+4

BTW, tất cả thông số "true" được đặt là NavigationItem.HidesBackButton thành false. Nó thực hiện điều đó trong phương thức ViewWillAppear, vì vậy nếu bạn ghi đè phương thức đó, bạn có thể lấy lại nút để hiển thị lại. Đó là hữu ích nếu bạn đang đẩy DialogViewController qua bảng phân cảnh. –

2

Nếu không nhìn thấy mã của bạn, tôi không chắc chắn chính xác những gì đang xảy ra sai ở đây. Tuy nhiên, từ những gì tôi biết về UINavigationController, ngăn xếp bộ điều khiển chế độ xem bắt đầu trống. Khi bạn đẩy bộ điều khiển xem đầu tiên, nó sẽ cung cấp cho trình điều khiển điều hướng một khung nhìn để hiển thị, nhưng nó không có gì để 'quay lại', vì vậy nó không hiển thị nút quay lại. Nếu bạn đẩy chế độ xem thứ hai, bạn có thể nhận được nút quay lại.

Ngoài ra, hãy đảm bảo rằng thuộc tính Title được đặt trên bộ điều khiển xem con của bạn nếu bạn muốn nút quay lại phản ánh chế độ xem bạn sẽ quay lại.

-1

Bạn cũng có thể thực hiện một mình

dialogViewController.NavigationItem.RightBarButtonItem = new UIBarButtonItem("Back",UIBarButtonItemStyle.Bordered,delegate(object sender,EventArgs e) 
      { 

       NavigationController.DismissModalViewControllerAnimated(true); 
      }); 
+0

Điều này tạo ra một nút ở bên phải của thanh điều hướng. Không phải nút mũi tên quay lại ở bên trái. – Rodja

0

Tôi có một điều khiển thanh tab mà sau đó bàn tay ra đến một bộ điều khiển nav (trong một bảng phân cảnh với flyoutnavcontollers quá). Một trong các bộ điều khiển xem từ đây khởi chạy vào một hộp thoại điều khiển cho các công cụ MT.D.

Tôi muốn một nút quay/nhọn nhọn đáng yêu từ hộp thoại monotouch trở lại điểm gọi của tôi trong bộ điều khiển điều hướng.

Nhưng khởi chạy vào MT.D mất điều hướng ngay cả khi im sử dụng trình điều khiển điều hướng hiện tại vì một số lý do tức là nút không được hiển thị và không có cách nào để quay lại. Màn hình mt.d tiếp theo cho nút quay lại.

Rõ ràng phải của bạn để vượt qua một boolean true vào cuộc gọi cho phép trở lại nút trong khi đẩy vào stack hiện nhưng didnt làm việc này cho tôi:

this.NavigationController.PushViewController (dv, true); 

việc giải pháp didnt trên của Dan đối với tôi. Nhưng popping hộp thoại dialogview hiện tại trong khi ở màn hình MT.D gốc giúp lấy lại vị trí trước đó của tôi trong bộ điều khiển nav gốc trong bảng phân cảnh (hoặc bộ điều khiển flyoutnav).

Không chắc chắn nếu hack này là đúng cách nhưng nó hoạt động.

dv.NavigationItem.RightBarButtonItem = new UIBarButtonItem("Back",UIBarButtonItemStyle.Bordered,delegate(object sender,EventArgs e) 
      { 

       NavigationController.PopViewControllerAnimated(true); 
      }); 

* cập nhật

Tôi manged để có được một nút quay lại bằng cách thêm dialogviewcontroller để viewcontrollers hiện subview:

dvc = new MyDvcController(this.NavigationController); 
this.View.AddSubview(dvc.TableView); 

các MyDvcController tương ứng chủ yếu loooks như thế này:

public partial class MyDvcController : DialogViewController 
{ 
    public MyDvcController (UINavigationController nav): base (UITableViewStyle.Grouped, null) 
    { 

     navigation = nav; 
     Root = new RootElement ("Demos"){ 
      new Section ("Element API"){ 
       new StringElement ("iPhone Settings Sample", DemoElementApi), 

      } 
     }; 
    } 
} 

điều này cho phép monotouch.dialog là một phần của ngăn xếp bộ điều hướng hiện tại và đạt được nút quay lại tự động với giao diện giảm dần ..yay

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