Có thể ghi đè bộ điều khiển chế độ xem mặc định từ bảng phân cảnh để hiển thị bộ điều khiển khác thay thế không? Điều này tất cả sẽ xảy ra trong AppDelegate tất nhiên.ios thay đổi bộ điều khiển chế độ xem mặc định của bảng phân cảnh tại thời gian chạy
5
A
Trả lời
10
@ Martol1ni Tôi muốn sử dụng câu trả lời của bạn, nhưng tôi cũng muốn tránh xa sự lộn xộn của cốt truyện không cần thiết để tôi chỉnh sửa mã của bạn một chút. Tuy nhiên tôi đã cung cấp cho bạn một +1 cho câu trả lời đầy cảm hứng của bạn.
Tôi đặt tất cả các điều sau đây trên bộ điều khiển mặc định.
- (void)gotoScreen:(NSString *)theScreen
{
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *screen = [self.storyboard instantiateViewControllerWithIdentifier:theScreen];
[app.window setRootViewController:screen];
}
Và khi xảy ra logic, tôi sẽ gọi những điều sau nếu cần.
if(myBool == YES) {
[self gotoScreen:@"theIdentifier"];
}
5
Tôi chắc chắn sẽ nhúng rootView vào UINavigationController, vì vậy bạn không phải là hai mà là ba chế độ xem. Con người không bao giờ được tung ra, chỉ để kiểm soát tất cả những người khác. Sau đó, triển khai các phương pháp trong đó như sau:
- (void) decideViewController {
NSString * result;
if (myBool) {
result = @"yourIdentifier";
}
else {
result = @"yourOtherIdentifier";
}
self.navigationController.navigationBarHidden = YES; // Assuming you don't want a navigationbar
UIViewController *screen = [self.storyboard instantiateViewControllerWithIdentifier:@"view1ident"];
[self.navigationController pushViewController:screen animated:NO]; // so it looks like it's the first view to get loaded
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self decideViewController];
}
Nó không bao giờ giống như lượt xem đầu tiên được tải. Nếu bạn đang sử dụng NIBS, bạn có thể thực hiện mọi thứ từ AppDelegate mặc dù ...
Chế độ xem mặc định được khai báo trong info.pList trong SDK mới nhất. Là nó phải kiểm tra một cái gì đó lúc khởi động, và sau đó quyết định những gì viewcontroller để đẩy? – Martol1ni
@ Martol1ni vâng, những gì bạn nói là chính xác những gì tôi đang tìm kiếm. – Jacksonkr
Bạn đang sử dụng UINavigationController? – Martol1ni