2012-06-10 3 views
1

Я новичок в MonoTouch и у меня проблемы с помощью NavigationViewController: В методе FinishedLauching, если я закомментировать эту строку:MonoTouch поворот и navigationViewController

window.AddSubview (viewController.NavigationController.View);

Окно вращается без проблем, но navigationController не работает. Если эта строка находится в коде (не комментирует), то navigationController работает, но экран не вращается.

Кто-нибудь знает, как это решить?

ответ

0

Настройка свойства RootViewController UIWindow - это правильный способ использования навигационного контроллера.

MyViewCtrl ctrl1 = new MyViewCtrl ("One"); 
_nav = new UINavigationController (ctrl1); 

window.RootViewController = _nav; 

Также не забудьте переопределить метод ShouldAutorotateToInterfaceOrientation в контроллере. Вот полный образец

[Register ("AppDelegate")] 
public partial class AppDelegate : UIApplicationDelegate 
{ 
    UIWindow window; 
    UINavigationController _nav; 

    public override bool FinishedLaunching (UIApplication app, NSDictionary options) 
    { 
     window = new UIWindow (UIScreen.MainScreen.Bounds); 

     MyViewCtrl ctrl1 = new MyViewCtrl ("One"); 
     _nav = new UINavigationController (ctrl1); 

     window.RootViewController = _nav; 
     window.MakeKeyAndVisible(); 

     return true; 
    } 
} 

public class MyViewCtrl : UIViewController 
{ 
    public MyViewCtrl (string title) 
    { 
     this.Title = title; 
    } 

    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 
     this.View.BackgroundColor = UIColor.White; 

     if (this.Title.Equals ("One")) 
     { 
      UIBarButtonItem testButton = 
       new UIBarButtonItem ("Two", UIBarButtonItemStyle.Bordered, 
            (object sender, EventArgs e) => { 
        this.NavigationController.PushViewController (
         new MyViewCtrl ("Two"), true); 
       }); 
      this.NavigationItem.RightBarButtonItem = testButton;  
     } 
    } 

    public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) 
    { 
     return true; 
    } 
} 
Смежные вопросы