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
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. –