【问题标题】:iphone switchview with buttons,how to allow press button one time only?带按钮的iphone switchview,如何只允许按一次按钮?
【发布时间】:2010-06-29 11:34:39
【问题描述】:

我是新手开发人员,正在创建我的第一个 iphone 应用程序......我有一个小问题 :)

我在我的程序 2 视图中切换,secondView 超过了 firstView,当我按 2 次或更多按钮以显示 SecondView iphone 模拟器停止工作时,如果在我按下显示 FirstView 后,他仍然显示 SecondView 视图:( ...

我需要帮助如何让按钮只按下一次,如果切换回 FirstView 后可以再次按下一次,并且显示为按下,现在它仅在我按下它时显示,...我想要 TabBar 中的按钮,如果我使用 TabBar 对我来说更难,我不知道如何将其调整为高度并添加自定义背景,并更改按下按钮的效果

非常感谢你,对不起我的英语不好!

这是我用按钮切换视图的代码

 //   FirstView.h
 #import <UIKit/UIKit.h>

@interface FirstView : UIViewController {

}

-(IBAction) goToSecondView:(id) sender;
-(IBAction) goToFirstView:(id) sender;

@end

//    FirstView.m
#import "FirstView.h"

#import "SecondView.h"

@implementation FirstView

SecondView *secondView;

-(IBAction) goToSecondView:(id) sender{
   secondView = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil]; 
   [self.view addSubview:secondView.view];
}

 -(IBAction) goToFirstView:(id) sender {      
    [secondView.view removeFromSuperview];
}

非常感谢!

【问题讨论】:

  • 考虑将其作为模态视图推送

标签: iphone objective-c uibutton


【解决方案1】:

这个:

@implementation FirstView

SecondView *secondView;

... 很可能是您崩溃的原因。您不应该在实现中定义实例变量。编译器可能会允许,但运行时会混淆,实例变量将无法正确保留。

你应该这样定义它:

@interface FirstView : UIViewController {
    SecondView *secondView;
}
@property(nonatomic, retain) SecondView *secondView;

...并像这样使用它:

-(IBAction) goToSecondView:(id) sender{
   UIView *newView = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
   self.secondView=newView;
   [newView release];
   [self.view addSubview:self.secondView.view];
}

为清楚起见,您还应该将FirstViewSecondView 重命名为FirstViewControllerSecondViewController,因为它们是视图控制器而不是视图本身。

更一般地说,您尝试做的事情既危险又困难。您不会通过将视图作为子视图添加和删除来交换视图。您需要使用 UINavigationController 或 UITabbarController 交换视图控制器及其视图。在 Xcode File>New Project 中,有一个基于 Navigation 的项目和一个基于 Tabbar 的项目模板。两者都将为您提供使用任一控制器实现简单应用程序所需的大部分代码。

花一天时间学习如何正确使用这些控制器非常值得。使用您当前的设计,如果您的应用程序获得的视图超过两个,它将中断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多