i like to create a second starting screen in my app. My Idea is to use the default.png
and load an UIView
with an fullscreen UIImageView
inside.
In viewDidLoad
i thought about placing a sleep option and after this load the real app screen. But also when my function is called in viewDidLoad
, nothing happens.
Seems my superview is empty... Here is a piece of code:
if (self._pdfview == nil)
{
pdfview *videc = [[pdfview alloc]
initWithNibName:@"pdfview" bundle:nil];
self._pdfview = videc;
[pdfview release];
}
// get the view that's currently showing
UIView *currentView = self.view;
// get the the underlying UIWindow, or the view containing the current view
UIView *theWindow = [currentView superview];
theWindow
is empty after this line so that might be the reason why the other view is not loaded.
So my question, how do i create a second starting screen ?
Or three starting screens, like in games when i like to mention another company.
If I understand correctly, your point is that when your function above is executed from viewDidLoad
of some controller, theWindow
is nil, so your new view (startscreen) is not added to it.
A few observations:
if theWindow
is nil, then self.view
is the topmost UIView; you can try and replace it, or simply add your view to it:
UIView *currentView = self.view; // get the the underlying UIWindow, or the view containing the current view UIView *theWindow = [currentView superview]; UIView *newView = _pdfview.view; if (theWindow) { [currentView removeFromSuperview]; [theWindow addSubview:newView]; } else { self.view = newView; //-- or: [self.view addSubview:newView]; }
if you want to get the UIWindow of your app (which seems what you are trying to do), you can do:
[UIApplication sharedApplication].keyWindow;
and from there you can either set the rootViewController
(from iOS 4.0)
[UIApplication sharedApplication].keyWindow.rootViewController = ...;
or add newView as a subview to it:
[[UIApplication sharedApplication].keyWindow addSubview:newView];
in the second case, you should possibly remove all subviews
previously added to the UIWindow
. (Iterate on keyWindow.subviews and call removeFromSuperview
).
OLD ANSWER:
I think that you should try and add your pdfview
as a subview to the current view:
[currentView addSubview:videc];
or to what you call theWindow
:
[theWindow addSubview:pvidec];
and, please, move the release
statement after the `addSubview, otherwise the view will be deallocated immediately.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.