简体   繁体   中英

ipad second start screen

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:

  1. 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]; } 
  2. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM