Multiple Views in Xcode 4.2

会有一股神秘感。 提交于 2019-12-25 05:35:38

问题


I'm having a lot of trouble finding a tutorial for implementing multiple views in Xcode 4.2 without storyboard, this is for a class so I can't use storyboard yet. I'm just trying to have a 2nd view with a UIPicker come up when a button is clicked in the main view, I just can't find one for this version of Xcode and it's different enough from the older versions to confuse me.

Any help appreciated if someone can give me a quick description of what I need to do this or a newer tutorial I'd appreciate it :)


回答1:


I think you should read the UIView Programming Guide to get a good handle on how UIViews work exactly. I find nibs/storyboard are really great at confusing new iOS developers.

In essence, a UIViewController has 1 view which you set in the viewDidLoad or loadView method by using the [self setView:someUIView]. You add more stuff to the screen by adding UIViews as a subview of the viewcontroller's "Main" view. For example

-(void)loadView {
    // Create a view for you view controller
    UIView *mainView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self setView:mainView];

    // Now we have a view taking up the whole screen and we can add stuff to it
    // Let's try a button, a UIButton is a subview of UIView
    UIButton *newButton = [[UIButton buttonWithType:UIButtonTypeRoundedRect];
    // We need to set a frame for any view we add so that we specify where it should
    // be located and how big it should be!
    [newButton setFrame:CGRectMake(x,y,width,height)];
    // Now let's add it to our view controller's view
    [self.view addSubview:newButton];

    // You can do the same with any UIView subclasses you make!
    MyView *myView = [[MyView alloc] init];
    [myView setFrame:CGRectMake(x,y,width,height)];
    [self.view addSubview:myView];

}

Now here we have our viewController who'se view is just a plain UIView which in turn has 2 subviews; newButton and myView. Since we created the MyView class, maybe it contains subviews as well! Let's take a look at what a UIView subclass could look like:

// Here is the init method for our UIView subclass
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Let's add a button to our view
        UIButton *newButton2 = [[UIButton buttonWithType:UIButtonTypeRoundedRect];
        // Of course, the frame is in reference to this view
        [newButton2 setFrame:CGRectMake(x,y,width,height)];
        // We add just using self NOT self.view because here, we are the view!
        [self addSubview:newButton2];

    }
    return self;
}    

So in this example we would have a view controller who'se view now contains 2 button! But the view structure is a tree:

           mainView
          /      \
  newButton     myView
                  \
                newButton2

Let me know if you have any other questions!

Matt



来源:https://stackoverflow.com/questions/9271159/multiple-views-in-xcode-4-2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!