2011-05-17 62 views
0

我對iPhone開發很新穎。我有我的「根」視圖,它正在實施iPhone事件處於「不活躍」狀態下的視圖

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration 

此實現工作得很好。在用戶按下按鈕後,我執行pushViewController將新視圖推送到堆棧上。如果用戶搖動iPhone,則即使當前「彈出」視圖沒有實現任何與加速度計相關的方法,加速計也會觸發。在我看來,即使已將不同的視圖壓入堆棧,根視圖仍然處於活動狀態。爲什麼視圖不是主動視圖仍然響應加速度計?

感謝

湯姆

回答

1

Actually the root view controller is not inactive in this case. It's just not visible. It is still alive and can receive events.

在你的加速度計的委託,有一個標誌,檢查是否根視圖是可見的。只有在根視圖可見時才進行任何操作。

if (visible) { 

    // Do operations 
} 
+0

謝謝。你的建議幫助 – 2011-05-17 05:02:17

+0

@Tom Schreck:歡迎。 – EmptyStack 2011-05-17 05:09:15

0

我認爲加速度不知道活動或不活動視圖控制器東西。

你所做的唯一的事情就是將你的ViewController設置爲一個委託(接收事件)給加速度計。在將另一個ViewController推入堆棧之後,您的原始ViewController將繼續存在。所以它繼續接收事件。

你必須自己處理這個 - 例如。通過檢查一個局部變量或(但沒有測試)通過檢查視圖的窗口屬性。

如果(self.view.window!=無){// 的viewController是活動 }

相關問題