2011-01-13 35 views
5

Ứng dụng của tôi có thanh tab với hai chế độ xem khác nhau. Trên tab đầu tiên, chế độ xem của nó có hoạt ảnh liên tục lặp.iphone: Khởi động lại hoạt ảnh lặp sau khi chế độ xem bị ẩn, sau đó xuất hiện lại?

Khi tôi nhấp vào tab thứ hai, sau đó quay lại tab đầu tiên, hoạt ảnh đã dừng. Tôi biết tôi có thể bắt đầu lại trong phương thức viewWillAppear: nhưng vấn đề lớn hơn. Cụ thể, hoạt ảnh cũng sẽ dừng nếu ứng dụng chuyển sang trạng thái nền, sau đó quay lại nền trước. Trong trường hợp đó, viewWillAppear không được gọi khi chuyển tiếp nền trước, vì vậy kỹ thuật viewWillAppear sẽ không làm gì cả.

Cách tốt nhất để xử lý tình huống này là gì?

Cảm ơn.

Trả lời

4

Để duy trì đóng gói, bạn đúng không muốn AppDelegate của mình để biết chế độ xem nào cần tiếp tục hoạt ảnh. Nhưng bạn có thể có chế độ xem chứa đăng ký hoạt ảnh cho thông báo tương ứng (ví dụ trong phương thức init của chế độ xem) và tự khởi động lại hoạt ảnh.

[[NSNotificationCenter defaultCenter] 
    addObserver:self 
     selector:@selector(startAnimation) 
      name:UIApplicationWillEnterForegroundNotification 
     object:nil]; 

... và đừng quên hủy đăng ký khỏi trung tâm thông báo theo phương pháp dealloc.

+0

Cách tốt hơn để thực hiện việc này! Cảm ơn. –

0

Bạn có thể đặt hoạt ảnh để tiếp tục trong phương thức applicationWillEnterForeground từ AppDelegate. Nếu bạn có tham chiếu đến bộ điều khiển xem của tab đầu tiên trong AppDelegate, chỉ cần gọi phương thức viewWillAppear của trình điều khiển xem từ AppDelegate.

+0

Vâng, đây là những gì tôi đã tìm. Tôi đã không thực sự thích giải pháp này, bởi vì nó loại lực lượng tôi để lộ rất nhiều chức năng điều khiển xem để các ứng cử viên, mà tâm trí của tôi nên được ẩn. (Tại sao đại biểu ứng dụng phải biết liệu bộ điều khiển xem của tôi có hoạt ảnh hay không?) Nhưng, điều này không có tác dụng, vì vậy tôi đoán đó là cách để thực hiện ngay bây giờ. –

Các vấn đề liên quan