1

背景:我有三种观点。一个介绍视图、一个上传视图和一个主视图。作为类(带有各自的标题),我有 rootViewController (SwitchViewController)、IntroViewController 和 UploadViewController。要显示的第一个视图是 IntroView。用户按下按钮(在 SwitchViewController 中声明)将他们带到 UploadView,然后在 UploadView 中他们可以选择图像并再次按下按钮返回 IntroView。

问题是,当用户使用 UIImagePickerController 选择图像时,切换视图的按钮不会隐藏,也不会隐藏我在视图(屏幕)顶部带有徽标的 UIImageView。UIImageView 和 UIButton 都在 SwitchViewController 的标头中声明。

使用的代码:

上传视图控制器.h

#import [...] //Imports
@class SwitchViewController;
@interface UploadViewController : 
UIViewController <UIImagePickerControllerDelegate, 
UINavigationControllerDelegate,UIActionSheetDelegate> {
    UITextField *imageTextField;
    UIImageView *uploadedImage;
    SwitchViewController *switchViewController;
[...]
}

@property (nonatomic, retain) SwitchViewController *switchViewController;
@property (nonatomic, retain) IBOutlet UITextField *imageTextField;
@property (nonatomic, retain) IBOutlet UIImageView *uploadedImage;
[...]
@end

上传视图控制器.m

[...]
- (IBAction) selectImageButtonPressed {
self.switchViewController.submitButton.hidden = YES;
self.switchViewController.imageLogo.hidden = YES;

[...] //continues

我最近才开始在 Objective-c 中编程,所以如果这个问题非常重要,请原谅我。我已经查看并正在关注 APRESS 的“开始 iPhone 3 开发”。但即使它有助于极大地理解基础知识,有时我也会迷失方向。

PS:如果更清楚地回答问题,可以提供 SwitchViewController.h 和 .m 代码段。但我认为这个文本很大。

4

2 回答 2

0

@Joze 我想我可能已经理解您的问题switchViewController是该类的一个变量,UploadViewController因此如果您对该变量执行任何操作,它不会影响 switchViewController 视图。因此,当您当时调用 switchViewController 视图时,您必须先initWithNibName: bundle:隐藏按钮和 imageView,并且您还需要执行类似操作switchViewController.delegate = self;,然后以模态方式调用视图或以任何方式调用视图。

PS。我不确定那个拼写是否正确。我家没有xcode。我希望你的问题能解决这个问题。

于 2011-01-25T15:29:53.947 回答
0

在重构整个代码并更改程序本身的一般结构后,我解决了我的问题。现在我有 3 个视图,每个视图都有一个 viewController 来控制它。所有视图的切换都发生在代表中,因为他可以访问每个人。这样我就可以毫不费力地用每个控制器控制每个属性。从另一个视图改变一个视图中存在的一个对象的属性是困难的,而且如果不是有时不可能的话,也是相当不方便的。

我在问这个问题时采取的方法对于必须完成的应用程序来说是短视的。我感谢所有试图提供帮助的人。

于 2011-02-09T10:32:37.817 回答