我正在开发一个应用程序,并为每个页面使用新的视图控制器和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中添加它就会导致其他一切错误,如果我把它拿出来那么应用程序运行完美。
答案 0 :(得分:1)
您的LoginViewController.h是否也导入了SettingsViewController?它似乎是一个“交叉引用”(我不知道这个术语在英语中是否有意义,就像在葡萄牙语中一样)。
在你之前
@interface SettingsViewController : UIViewController
放一个
@class LoginViewController;
并检查它是否有帮助。
答案 1 :(得分: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];
}
使用上述方法挂钩按钮。不需要属性!你(可能)已经完成了。