2011-01-25 77 views
1

背景:我有三种观点。一个介绍性视图,一个上传视图和主视图。作为类(与他们各自的头)我有rootViewController(SwitchViewController),IntroViewController和UploadViewController。第一个要显示的视图是IntroView。用户按下一个按钮(在SwitchViewController中声明),将它们带到UploadView,然后在UploadView中选择一个图像,然后再次按下按钮返回到IntroView。Objective-C新手。从另一个控制器更改控制器的属性?

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

使用的代码:

UploadViewController.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 

UploadViewController.m

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

[...] //continues 

我刚刚开始最近在编程Objective-C的,所以请原谅我,如果这个问题是很必要。我已经看过并正在关注APRESS的“开始iPhone 3开发”。但即使有助于大大理解基础知识,有时我也会迷失方向。 PS:如果回答的问题更清晰,则可以提供SwitchViewController.h和.m代码段代码。但我认为这段文字很大。

+0

您已正确连接Interface Builder中的插座,对不对? – 2011-01-25 14:56:33

+0

是的,我做过。我已经检查了几次,以确保... – Joze 2011-01-25 15:00:28

回答

0

重构整个代码并改变程序本身的一般结构后,我解决了我的问题。现在我有3个视图,每个都有一个viewController来控制它。所有切换视图都发生在委托中,因为他可以访问每个人。这样我可以控制每个控制器的每个属性,没有太大困难。在另一个视图中改变一个视图中的一个对象的属性是困难的,如果不是不可能的话,则很不方便。 (虽然我仍然是一个业余做这种类型的陈述)

我提出这个问题的方法是短视的必须完成的应用程序。我感谢所有想要帮助的人。

0

@Joze我想我可能已经理解你的问题switchViewController是类UploadViewController的变量,所以如果你做任何与该变量它不会影响switchViewController视图。所以当你在那时调用switchViewController视图时,你必须做initWithNibName: bundle:,然后隐藏按钮和imageView,并且你还需要做一些类似switchViewController.delegate = self;的事情,然后以模态方式调用视图,或者以任何你想要的方式调用视图。

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

相关问题