我的服务类没有派生自 UIViewController ,但是我想调用 NavigationController 来移动到另一个控制器。
class AppoxeeService
{
public void ShowInbox(){
..
//this code doesn't work (of course),
//because class isn't derived from UIViewController
NavigationController.PushViewController(new AppoxeeInboxController(), true)
//this code is mostly possible,
//but the NavigationController is null here
UIApplication.SharedApplication.KeyWindow.RootViewController.NavigationController.PushViewController(new AppoxeeInboxController(), true)
}
}
Xamarin文档仅适用于故事板,但我想动态查找当前的 RootViewController 并将其绑定到 NavigationController 。
在Xamarin的其他简单(又名" HelloWord")样本或其文档中,可以从 FinishLaunching 方法实例化:
var window = new UIWindow (UIScreen.MainScreen.Bounds) {
BackgroundColor = UIColor.White
};
rootViewController = new RootViewController ();
navigationViewController = new UINavigationController (rootViewController);
window.RootViewController = navigationViewController;
window.MakeKeyAndVisible ();
我完全坚持 NavigationController 及其在代码中的用法。
答案 0 :(得分:0)
您不需要编写复杂的代码。 只需调用您在AppDelegate类中声明的导航控制器实例
在AppDelegate.h中
@property(nonatomic,strong) UINavigationController *navigationController;
在AppDelegate.m
@synthesize navigationController
然后你的代码在didLaunch方法
你班上的
只需在任何地方调用实例
[(((AppDelegate *)[[UIApplication sharedApplication]委托])。navigationController pushViewController:yourViewController animated:YES];