Vì thử nghiệm ứng dụng của tôi trên iOS 8, tôi thấy một công việc xung quanh khởi tạo bộ điều khiển chế độ xem và trình diễn thực sự chậm.iOS 8 - Trục trặc khi trình bày bộ điều khiển xem nhanh sau khi cài đặt cửa sổ chính hoặc loại bỏ và instanly trình bày khác
Tôi từng làm việc với một mã tương tự như sau trên iOS 6 & 7:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
....
[self.window setRootViewController:_rootController];
[self.window makeKeyAndVisible];
// Conditions
if (#first launch condition#) {
// quite small controller containing Welcome showcase
WelcomeViewController *w = ....
[_rootViewController presentViewController:w animated:NO];
}
else if (#last opened item condition#) {
// pretty big container, root view controller contains
// a grid view which opens Item detail container the same way
ItemDetailController *item = ....
[_rootViewController presentViewController:item animated:NO];
}
}
này đã trở thành một địa ngục thực sự chậm chạp với iOS điều khiển xem 8. gốc bây giờ xuất hiện rõ ràng cho 0,5-1 thứ hai và sau đó ngay lập tức vẽ lại màn hình bằng trình bày. Hơn nữa, sự chậm chạp của bản trình bày bắt đầu gây ra cảnh báo Unbalanced calls to begin/end appearance transitions _rootViewController
.
ban đầu gợi ý nhanh chóng là để di chuyển cả hai điều kiện với các cuộc gọi đến chức năng khác và gọi nó với một độ trễ zero vì vậy nó được chế biến trong vòng lặp chạy chính tiếp theo:
[self performSelector:@selector(postAppFinishedPresentation) withObject:nil afterDelay:0];
hoặc một cái gì đó như thế. Điều này sửa chữa các vấn đề gọi unballanced, nhưng khoảng cách hình ảnh (rootviewcontroller, khoảng cách, trình bày một) trở nên (rõ ràng) thậm chí còn lớn hơn.
Các sự chậm chạp của bài trình bày cũng là hiển nhiên khi bạn gọi một cái gì đó bình thường như:
// Example: Delegate caught finished Sign In dialog,
// dismiss it and instantly switch to Profile controller
-(void)signInViewControllerDidFinishedSuccessfully
{
[self dismissViewControllerAnimated:NO completion:^{
UserProfileViewController *userProfile = ...
[self presentViewController:userProfile animated:NO];
}];
}
mà nên mảnh hoàn toàn hợp lý của mã, trong đó sử dụng để thực hiện quá trình chuyển đổi trực tiếp mà không cần một flick hữu hình của xem cha mẹ điều khiển trên iOS 7. Bây giờ, cùng một điều - flicks phụ huynh trong quá trình chuyển đổi, thậm chí cả hai đều được xử lý mà không có hình ảnh động.
Có ai phải đối mặt với vấn đề này không? Bất kỳ giải pháp? Tôi muốn giải quyết điều này mà không cần phải làm một số ma thuật vui nhộn với UIWindow
s cho mỗi điều tôi cần để quá cảnh hoàn hảo.
Tôi đang gặp sự cố này nhưng chưa tìm được giải pháp. –
Bạn đã bao giờ tìm được giải pháp chưa? –
Cũng xử lý cùng loại vấn đề. Chưa có giải pháp nào. Trong mã của tôi, iOS 7 hoạt động rất đẹp nhưng iOS 8 có một sự chậm trễ khủng khiếp giữa một kết hợp sa thải/viewController hiện tại. Đã cố gắng đặt cả hai cuộc gọi trong cùng một khối hoạt ảnh để không có kết quả. Đã thử cả hai trong cùng một cuộc gọi không có hình động, vẫn không có gì. iOS 8 có quá nhiều quà tặng ẩn ... –