2015-10-16 56 views
-1

当我水平倾斜iPad设备时,我获得了一个奇怪的行为。 通知:iPad设备的奇怪行为已经水平倾斜

NSNotificationCenter.defaultCenter().addObserver(self, selector: "MySelector", name: UIDeviceOrientationDidChangeNotification, object: nil) 

已被触发,并调用 “MySelector” 导致无用UI更新。 当我的设备水平倾斜时,有一种方法可以避免触发我的选择器?

回答

0

我从以下问题中看到:Link - 如果您不想要这样的通知出现,那么您将希望覆盖viewDidDisappear方法并调用removeObserver()。我不确定这是否是您正在寻找的答案,因为我在理解您的原始问题时遇到了一些麻烦。让我知道这是你想知道的。

+0

这样做会禁用所有方向翻转,我相信海报是说如果他有一个设备平放在面向水平的表面上,他抬起屏幕,它仍然是水平的,它仍然调用orientationdidchange通知。 – Knight0fDragon

+0

嗯,好吧,我没有想到这是OP的问题意味着什么。 –

+0

@ Knight0fDragon你解释了我的问题 –

0

尝试在if条件中包装调用函数以确保方向已更改。这是伪代码:

func MySelector 
{ 
    if oldorientation != neworientation 
    { 
     do stuff 
    } 
} 

如果此代码仍然射击,那么这意味着该系统将人像,然后水平真正的快,你可能要放一个小计时器什么的仔细检查方向。