【问题标题】:iOS: Sublassing navigationController and pushing view generates warningiOS:子类化 navigationController 和推送视图会产生警告
【发布时间】:2013-07-28 05:57:16
【问题描述】:

出于某种原因,我将 navigatioController 子类化以覆盖 pushViewController 方法:

-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    NSLog(@"Pushing %@ to NavigationController", viewController);
    if([[self viewControllers] containsObject:viewController])
    {
        if( [self topViewController] == viewController )
        {
            NSLog(@"Pushed ViewController is already on top!");
        }
        else
        {
            NSLog(@"Moving Pushed ViewController to top!");
            [self popToViewController:viewController animated:animated];
        }
    }
    else
    {
        [super pushViewController:viewController animated:animated];
    }
    NSLog(@"NavigationControllers: %@", [self viewControllers]);
}

一切正常,但是每当我有一行代码时,视图控制器被推送到导航控制器时,我都会收到警告:

Incompatible pointer types sending 'NMROViewController *' to parameter of type 'UIViewController *'

这有点“令人不安”。好的,方法签名需要一个 UIVIewController,但它是刚刚被我的代码覆盖的“原始”。

我想,一定有什么,我不知道要“压制”还是“避免”警告。

或者我必须生成多个方法!?

提前致以诚挚的问候...

【问题讨论】:

  • 我尝试了您的代码,但在推送子类视图控制器时没有收到任何警告。你用什么代码来做推送?
  • 你可能会称我为白痴 :-( 举个例子,我发现同一个视图实例一次会产生错误,而一次不会,由于缺少相应的导入。h-文件 SORRY... 屏幕前的问题

标签: ios pushviewcontroller overwrite navigationcontroller


【解决方案1】:

好的,解决方法就这么简单。我忘了在开头导入正确的 .h 文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 2011-12-20
    • 1970-01-01
    • 2011-06-02
    • 2012-02-28
    相关资源
    最近更新 更多