2012-05-21 20 views
5

Khi nào bạn nên gọi ReleaseDesignerOutlets cho lớp giao diện người dùng bảng phân cảnh tùy chỉnh khi nó không phải là UIViewController và do đó không có phương thức ViewDidUnload?Khi nào cần gọi ReleaseDesignerOutlets khi ViewDidUnload không tồn tại

Fx. Tôi có một lớp UITableViewCell tùy chỉnh và muốn phát hành các cửa hàng của mình. Tôi có thể thấy có một phương pháp protected void Dispose(bool disposing), nhưng không thể tìm ra nếu ghi đè phương pháp này là cách thực hiện đúng.

+0

Như tôi biết bạn không phải xử lý việc vứt bỏ hoặc giải phóng UITableViewCell. Việc vứt bỏ đã được gọi sau khi tạo ra các tế bào, ngay cả khi nó vẫn được hiển thị. Chế độ xem bảng tự động phát hành các ô khi có bộ nhớ cần thiết (nếu bạn không tạo các bài tập tĩnh) và bạn có thể tải lại các ô hiện có bằng phương thức tableView.DequeueReusableCell ("MyCustomCell") trong phương thức GetCell của UITableViewSource của bạn. – Theos

Trả lời

0

Nếu không có ViewDidUnload, tôi sẽ giải phóng các cửa hàng của mình khi bộ điều khiển chế độ xem của tôi bị xóa khỏi ngăn điều hướng. Mà sẽ chỉ làm việc khi sử dụng một NavigationController hoặc với PresentViewController. Cha mẹ sẽ là null trong trường hợp đó.

public override void DidMoveToParentViewController(UIViewController parent) 
{ 
    base.DidMoveToParentViewController(parent); 

    if(parent == null && cleanupOnNavigationStackRemoval) 
    Cleanup(); 
} 


protected void Cleanup() 
{ 
    CleanupBindings(); 

    ReleaseOutlets(); 
}