开发者

ipad second start screen

开发者 https://www.devze.com 2023-03-23 09:26 出处:网络
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.

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)
{
    pdfv开发者_运维知识库iew *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.

0

精彩评论

暂无评论...
验证码 换一张
取 消