【问题标题】:UINavigation Controller subview ProblemUINavigation 控制器子视图问题
【发布时间】:2011-06-16 07:04:51
【问题描述】:

在我的应用程序中,我的第一个页面是UITableviewController。然后我在UIViewcontroller 中添加一个subView,比如:

viewcontrollername * prod=[[viewcontrollername alloc]init];
[self.view addSubview:prod.view];

没关系,但我的问题在于UINavigation 控制器在viewcontroller 页面中不起作用(不导航到另一个页面)。我已经在点击事件中实现了它:

prod *login=[[prod alloc]init];
UINavigationController *navCtrl= [[UINavigationController alloc] init];
[navCtrl pushViewController:login animated:YES];
[login release];

  prod *login=[[prod alloc]init];
 [self.navigationController pushViewController:login animated:YES];
 [login release];

但它不会导航到另一个页面。

【问题讨论】:

  • @marzapower UINavigation 控制器在子视图中不起作用
  • 不工作是什么意思?你有错误吗?例外?你什么都看不见吗?什么?
  • @marzapower 它没有导航到另一个页面。我没有收到任何错误
  • 您应该更新问题以使其更易于理解...

标签: iphone objective-c uinavigationcontroller


【解决方案1】:

在初始化导航控制器时使用此代码:

UINavigationController *navigationCtrlSlideShowSetting = [[UINavigationController alloc] initWithRootViewController:yourviewcontroller];

谢谢

【讨论】:

  • 在viewwillappear中添加自定义后退按钮和事件。
【解决方案2】:

看起来navCtrl 尚未添加到视图层次结构中。要么将其作为子视图添加到 window,要么将其设为 rootViewController

【讨论】:

    【解决方案3】:

    您的第一个视图控制器应该是导航控制器的根视图控制器。

    initWithRootViewController

    或者,您可以将新创建​​的导航控制器添加到您的视图控制器。

    [self.view addSubview:navCtrl.view];
    

    完成此操作后,您可以将视图控制器推送到导航控制器。

    编辑: 您需要有一个后退按钮,以防您无法返回主屏幕。更好的选择是在主屏幕上使用导航控制器并继续将视图推送到堆栈上。

    【讨论】:

    • 这是因为登录屏幕成为导航控件的第一个视图,其中没有更多视图。在这种情况下,您可以在视图加载方法中创建自定义后退按钮。它是一种不同的方法。我会尝试编辑我的帖子以适应这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 2012-07-26
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多