【问题标题】:UIViewController not animating smoothly in navigation controller pushUIViewController 在导航控制器推送中动画不流畅
【发布时间】:2015-02-09 06:23:26
【问题描述】:

我有一个名为 StartViewController 的 UIViewController,其中有一个 textview。点击 url 时会调用 text view 方法。

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
{
    NSString *str = URL.resourceSpecifier;
    NSInteger length = str.length;

    if (length > 1)
    {
        AViewController *aView = [[SearchViewController alloc] init];

        aView.query = str;

        [self.navigationController pushViewController:aView animated:YES];

        return NO;
    }
}

但是当导航控制器被推送一个值和动画时,它并不顺利。它运行到一半然后消失并显示 aView。

为什么?

【问题讨论】:

  • 首先,导航控制器没有被推送,aView 是。当您说“它走了一半”时,“它”是什么?你在哪里制作 aView 的视图?
  • 这不取决于您在UITextView 的委托方法中所做的事情。我认为,您正在对AViewController 的视图生命周期方法(例如主线程上的viewDidLoadviewWillAppear:)进行一些昂贵的操作(可能从互联网同步加载?)。
  • 你是在设备还是模拟器上测试这个?可能只是模拟器动作慢。您的代码看起来不错,如果设备上的速度很慢,可能会在后台发生代价高昂的事情,如上所述。
  • 我将不得不检查我在当前视图控制器中进行了哪些保存。 aView 只是一个空视图,带有一个通过属性(查询)传入的标签。

标签: ios uiviewcontroller ios8 uinavigationcontroller


【解决方案1】:

寻找 AViewController 的视图问题。

在推送操作期间,StartViewController 会滑出到屏幕的 60-70% 左右,同时 AViewController 会滑入 StartViewController 的顶部。 如果 AViewController 的视图有任何问题(帧大小无效?),您将看不到动画中的幻灯片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 2013-07-19
    相关资源
    最近更新 更多