Я пытаюсь представить этот modalViewController в моем приложении, и он должен быть полноэкранным.
Вот так я вызываю ModalViewController.
myViewController = [[MyViewController alloc] init];
//self.myViewController.SomeView = [[UIView alloc] init];
//self.myViewController.SomeView.frame = self.ThisView.frame;
//self.myViewController.backButtonEnabled = NO;
//self.myViewController.dismissDelegate = self;
//[self.myViewController doLoadShizzle]; //do this to load view and stuffs as well
//all commented to try to make the edit construction work
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:self.myViewController];
navController.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentModalViewController:navController animated:YES];
[self.myViewController release];
[navController release];
navController.modalPresentationStyle работаетдля всего, кроме полноэкранного режима.Я зарегистрировал self.view модального вида в ViewDidLoad, и он имеет правильные размеры (включая настройки в строке состояния)
NSLog (modalviewcontroller.view) =>
NSLog (modalviewcontroller.SomeView =>
Я делаю что-то здесь не так (очевидно), ноКажется, я не могу понять, что это такое. Я искал вещи как обходной путь, но пока ни один из вариантов не был ответом. Если кто-нибудь знает, в чем здесь проблема, я бы очень хотелзнать.
Заранее спасибо.
// --- РЕДАКТИРОВАТЬ --- //
Хорошо, теперь я создаю этот прототип иЯ подтвердил, что этот код работает так, как я хочу. Однако я не могу реализовать то же самое в моей большей архитектуре.
--------. H (mainVC)
#import <UIKit/UIKit.h>
#import "ModalFullScreenShizzle.h"
@interface ModalViewControllerFullScreenTry2ViewController : UIViewController <ModalViewDelegate>
{
ModalFullScreenShizzle *fullscreenShizzle;
}
@property (nonatomic,retain) ModalFullScreenShizzle *fullscreenShizzle;
-(void)gotoFullscreenModal;
@end
-----------. M (mainVC)
@implementation ModalViewControllerFullScreenTry2ViewController
@synthesize fullscreenShizzle;
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor yellowColor];
UIButton *fullscreenActivate = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
fullscreenActivate.backgroundColor = [UIColor greenColor];
[fullscreenActivate addTarget:self action:@selector(gotoFullscreenModal) forControlEvents:UIControlEventTouchUpInside];
[fullscreenActivate setTitle:@"Full Screen ACTIVATE!!!!!!1111one" forState:UIControlStateNormal];
[self.view addSubview:fullscreenActivate];
}
-(void)gotoFullscreenModal
{
self.fullscreenShizzle = [[ModalFullScreenShizzle alloc] init];
self.fullscreenShizzle.theScreen.frame = self.view.frame;
// self.fullscreenShizzle.dismissDelegate = self;
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:self.fullscreenShizzle];
navController.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentModalViewController:navController animated:YES];
// [self.fullscreenShizzle release];
// [navController release];
}
-(void)didDismissModalView
{
[self dismissModalViewControllerAnimated:YES];
}
-----------. H (modalVC)
#import <UIKit/UIKit.h>
@protocol ModalViewDelegate <NSObject>
- (void)didDismissModalView;
@end
@interface ModalFullScreenShizzle : UIViewController
{
UIView *theScreen;
id<ModalViewDelegate> dismissDelegate;
}
@property (nonatomic, retain) UIView *theScreen;
@property (nonatomic, assign) id<ModalViewDelegate> dismissDelegate;
@end
--------------. М (modalVC)
#import "ModalFullScreenShizzle.h"
@implementation ModalFullScreenShizzle
@synthesize theScreen;
- (void)loadView
{
[super loadView];
self.view.frame = theScreen.frame;
self.view.backgroundColor = [UIColor blueColor];
}
// --- РЕДАКТИРОВАТЬ 2 -- //
Я сделал приведенный выше код и попытался добавить его в главное окно mainVC. Он работает, но не соответствует автоматическому изменению размера.Если авторазмер работает правильно, это (вроде) грязное исправление, а не правильное решение, которое я хотел бы использовать.И это не тот порядок, в котором окна показывают себя.Тем временем я использую один из других (работающих) стилей представления.Но я все еще хотел бы знать решение ..
.. если кто-нибудь знает, что это.