0

好的,这可能是一个非常基本的问题,如果是,我很抱歉,但它让我发疯,我真的需要更好地理解。

我有一个正在开发的应用程序,并为每个页面使用一个新的视图控制器和 xib 文件。

我使用以下代码调用每个页面:-

HelpVC = [[[HelpViewController alloc] initWithNibName:@"HelpViewController" bundle: [NSBundle mainBundle]]autorelease];
[self presentModalViewController:HelpVC animated:YES];

效果很好。

但是,如果我在一个文件中声明了它,然后我想在其他地方调用它,我就会到处出错。

有什么方法可以先在类文件中初始化所有 xib 文件,然后在需要时从该文件中调用它们?

谢谢

这是我回来的错误

错误:“UserInputViewController”之前的预期说明符限定符列表

上面的消息似乎导致我在 .h 文件中的所有声明都出错。

一些示例代码是: -

.h 文件

#import <UIKit/UIKit.h>
#import "CgePWViewController.h"
#import "LogBackInViewController.h"
#import "LoginViewController.h"

@interface SettingsViewController : UIViewController
{
    CgePWViewController *cPWVC;
    LogBackInViewController *LBIVC;
    LoginViewController *login;
}

@property(nonatomic, retain) CgePWViewController *cPWVC;
@property(nonatomic, retain) LogBackInViewController *LBIVC;
@property(nonatomic, retain) LoginViewController *login;

所以基本上只要我在 LoginViewController 中添加它就会导致其他所有错误,如果我把它拿出来,那么应用程序就会完美运行。

4

2 回答 2

1

您的 LoginViewController.h 是否也导入了 SettingsViewController?它似乎是一个“交叉引用”(我不知道这个词在英语中是否像在葡萄牙语中一样有意义)。

在你之前

@interface SettingsViewController : UIViewController

放一个

@class LoginViewController;

并检查它是否有帮助。

于 2012-08-06T18:41:40.137 回答
0

不要初始化视图控制器以将它们放入属性中。相反,请在需要时立即创建它们。

假设您想在有人按下按钮时显示视图控制器。将此方法添加到您的视图控制器(假设它被命名MyFirstViewController):

- (IBAction)someButtonDidPush: (UIButton *)sender {
    MySecondViewController *vc = [[MySecondViewController alloc] init];

    // Do stuff and then show it. One way may be like this:
    [self presentViewController: vc animated: YES completion: nil];
}

只需使用上述方法连接按钮即可。不需要属性!你(可能)完成了。

于 2012-08-06T18:45:14.017 回答