如何在没有导航控制器的iPhone中更改按钮点击视图?

时间:2011-06-09 09:17:46

标签: iphone objective-c views

我想知道如何在没有导航控制器的情况下更改iPhone上的按钮点击视图?

5 个答案:

答案 0 :(得分:4)

如果您使用UIViewController执行此操作,您可能会执行以下操作:

- (IBAction)change {
    UIViewController* viewController = [[UIViewController alloc] init];
    [self.view addSubView];
    // Save the UIViewController somewhere if necessary, otherwise release it
}

不知道为什么你不想使用UINavigationController。如果它是您不想看到的顶部的导航栏,则有一个属性,以便您可以隐藏该栏。不确定它的名字,可能是navigationBarHidden或类似的东西。你可以在API中查找。

答案 1 :(得分:3)

有许多不同的方法可以做到这一点,您应该提供有关您的应用的更多信息。

以下是通用方法:动画:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];    
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];

[vc1 viewWillDisappear:YES];
[vc2 viewWillAppear:YES];
vc1.view.hidden = YES;
vc2.view.hidden = NO;
[vc1 viewDidDisappear:YES];
[vc2 viewDidAppear:YES];

[UIView commitAnimations];

在这种情况下,两个视图都存在,您只需根据需要隐藏/显示它们。或者,您可以在超级视图中添加/删除视图:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];    
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];

[vc1 viewWillDisappear:YES];
[vc2 viewWillAppear:YES];
[vc1 removeFromSuperview];
[masterController.view addSubview:vc2.view;
[vc1 viewDidDisappear:YES];
[vc2 viewDidAppear:YES];

[UIView commitAnimations];

答案 2 :(得分:1)

将其放入Button IBAction方法

  

[mCurrentView removeFromSuperview];
  [self.view addSubView:mNewView];

答案 3 :(得分:1)

假设您有两个视图myView1和myView2以及内存中的一个按钮myUIButton

myView1.tag = 1;
myView2.tag = 2;
myUIButton.tag = 1; //Current visible view is myView1

-(void) ButtonCLicked:(id) sender 
{
       UIButton* myButton = (UIButton*)sender;


       if(sender.tag == 1)
       {
           [myView1 removeFromSuperview];
           [self addSubview:myView2]
           myButton.tag = myView2.tag;
       }
       else 
      {
          [myView2 removeFromSuperview];
          [self addSubview:myView1]
           myButton.tag = myView1.tag;
      }
}

答案 4 :(得分:0)

您可以在头文件中放置两个UIView变量并隐藏/显示其中一个,或者您可以在现有视图上创建另一个图层,如下所示:

-(IBAction)changeView {

    UIView *view = [[UIView alloc] initWithNibName:@"letMeSeeThis" bundle:nil];
    [self.view addSubview:view];
}