2012-10-16 26 views
12

tôi đã trình bày một UINavigationController chứa UIViewController về tự đối tượng với đoạn mã saukiểm tra xem hiện tại bộ điều khiển trên màn hình trong ios

drawController = [[DrawImageViewController alloc] initWithNibName:nil bundle:nil]; 
[drawController setDrawControllerDelegateObject:self]; 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:drawController]; 
[self presentModalViewController:nav animated:YES]; 
[nav release]; 

Nhưng khi trước khi gọi các mã trên cho lần thứ hai tôi muốn biết liệu bộ điều khiển xem hiện tại xuất hiện trên màn hình là drawController. Tôi đang sử dụng mã sau đây

if (drawController && [drawController isBeingPresented]) 

Nhưng nó không hoạt động đối với tôi và cả iOS 5.0 nên tôi bị kẹt ở đây. Xin hãy giúp tôi biết làm thế nào tôi nên đến để biết UIViewController hiện tại xuất hiện trên màn hình là lớp nào và liệu drawContoller vẫn được trình bày trên màn hình hay không? Xin lỗi vì lỗi đánh máy của tôi nếu có. Bất kỳ trợ giúp sẽ được đánh giá cao.

Cảm ơn Neha Mehta

Trả lời

5

Không mã đẹp, nhưng điều này sẽ làm việc:

if ([self.presentedViewController isKindOfClass:[UINavigationController class]] && 
    ((UINavigationController *)self.presentedViewController).topViewController == drawController) { 
    … 
21

Sử dụng navigationController's visibleViewController propertyisKindOfClass method để biết whats trên top:

if([self.navigationController.visibleViewController isKindOfClass:[yourcontroller class]]) 
    //exists 
else 
    //not exists 
+1

tôi đã nhận được lỗi này rất nhỏ nhưng bạn cần phải bao gồm [] xung quanh tự. – Lion789

+0

@ Lion789 cảm ơn bạn rất nhiều vì tôi đã chỉnh sửa :) –

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