【问题标题】:UINavigationController and presentModalViewControllerUINavigationController 和 presentModalViewController
【发布时间】:2010-10-25 15:22:35
【问题描述】:

我有一个结合了 TabController 和 UINavigationController 的应用程序。

当一个按钮被按下时,我想弹出另一个带有自己的 UINavigationController 的窗口。

-(void) buttonPushed: (UIBarButtonItem *) myButton
{

    MyNavigationController *controller = [[MyNavigationController alloc] initWithNibName:@"MyNavigationController" bundle:nil];

    MyDelegate *appDelegate = (MyAppDelegate*) [[UIApplication sharedApplication] delegate];    
    [appDelegate.rootController presentModalViewController:controller animated:YES];
}

窗口显示,但我有一个完整的空白导航栏,我看不到 我在 nib 文件中修改了标题。

我猜我设置笔尖时出了点问题,因为当我用基本视图控制器替换导航控制器时,它加载正常。

所以知道出了什么问题吗?

【问题讨论】:

  • 我需要做的是添加一个标题栏来放置一些按钮。除了使用导航栏,还有其他方法吗?

标签: iphone


【解决方案1】:

您必须先将视图添加到 NavController,然后在模态窗口中显示 NavController。试试这样的:

MyController *controller = [[MyController alloc] initWithNibName:@"controllerNib" bundle:nil];

  //Place controller in navController
UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:controller];

//Display in form sheet modal window
navController.modalPresentationStyle = UIModalPresentationFormSheet;

 MyDelegate *appDelegate = (MyAppDelegate*) [[UIApplication sharedApplication] delegate];    
[appDelegate.rootController presentModalViewController:navController animated:YES];

完成此操作后,您可以随时在控制器视图控制器中将新视图推送到 navController。它会自动处理后退按钮和所有爵士乐。就这么简单:)

【讨论】:

    【解决方案2】:

    只是一个快速的想法,

    在展示 NavigationController 之前,您是否将视图控制器推送到 NavigationController 上?

    去过那里,我自己做过;)

    【讨论】:

    • 似乎不是那个问题。经过搜索,我发现模型与导航控制器似乎有一些问题..:-)
    • 这很奇怪,我以模态方式展示了很多导航控制器。有时只是为了确保我在模态视图中有一个正确的 UINavigationBar。
    • 另一个建议:您显然是 UINavigationController 的子类,并有一个新类“MyNavigationController”。与标准 NavContr. 有什么区别?也许你通过子类化了一些东西。
    猜你喜欢
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多