@implementation WatchViewController
- (void)viewDidLoad
{
[super viewDidLoad];UIButton *watch1 = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
watch1.frame = CGRectMake(5.0, 10.0, 140.0, 170.0);
[watch1 setBackgroundImage:[UIImage imageNamed:@"Watch1.png"] forState: UIControlStateNormal];
[watch1 addTarget:self action:@selector(WatchesPreviewButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[scr addSubview:watch1];
UIButton *watch2 = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
watch2.frame = CGRectMake(170.0, 10.0, 140.0, 170.0);
[watch2 setBackgroundImage:[UIImage imageNamed:@"watch2.png"] forState: UIControlStateNormal];
[watch2 addTarget:self action:@selector(WatchesPreviewButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[scr addSubview:watch2];
}
- (IBAction)WatchesPreviewButtonPressed:(id)sender {
WatchPreviewViewController *watchesPreviewView = [[WatchPreviewViewController alloc] initWithNibName:@"WatchPreviewViewController" bundle:nil];
[self.navigationController pushViewController:watchesPreviewView animated:YES];
[watchesPreviewView release];
}
@implementation WatchPreviewViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIScrollView *scr=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 46, 320, 384)];
[self.view addSubview:scr];
NSArray* ds =[NSArray arrayWithObjects:
[NSArray arrayWithObjects:[self getPath:@"1a"],[self getPath:@"1b"],[self getPath:@"1c"],[self getPath:@"1d"],nil],
[NSArray arrayWithObjects:[self getPath:@"2a"],[self getPath:@"2b"],[self getPath:@"2c"],[self getPath:@"2d"],nil],nil];
SSView* sv =[SSView createWithFrame:CGRectMake(0, 0, 320, 380) ds:ds];
if(??????????????????) //what condition is required for watch1?
{
sv.curIndexPath =[NSIndexPath indexPathForRow:0 inSection:0];
[scr addSubview:sv];
}
else if(?????????????????) //what condition is required watch2?
{
sv.curIndexPath =[NSIndexPath indexPathForRow:1 inSection:0];
[scr addSubview:sv];
}
在第一课中,我有两个手表图像,我希望在点击手表时加载下一页视图。为此我使用方法WatchesPreviewButtonPressed
。
在第二类我正在创建加载按钮点击的页面。
在第二课中,我在视图中有一个滚动视图。我有图像阵列。
我希望在下次观看点击活动中显示不同的图像。
任何人请我,我是iphone开发的新手。
答案 0 :(得分:1)
在WatchPreviewViewController中创建一个类似enum的样式,并创建自己的init方法。
typedef enum WatchPreviewViewControllerStyleType { WatchPreviewViewControllerStyleType1 = 0, WatchPreviewViewControllerStyleType2 = 1 }WatchPreviewViewControllerStyleType; @interface WatchPreviewViewController : UIViewController { WatchPreviewViewControllerStyleType style; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andStyle:(WatchPreviewViewControllerStyleType)_style;
@implementation - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andStyle:(WatchPreviewViewControllerStyleType)_style { self.style=_style; } - (void)viewDidLoad { [super viewDidLoad]; if(self.style==WatchPreviewViewControllerStyleType1) { } else if(self.style==WatchPreviewViewControllerStyleType2) { } }
在此自定义初始化设置中创建控制器时发送的ivar样式。然后在viewDidload中检查样式类型并为该样式添加所需的视图。
并在WatchViewController中
@implementation WatchViewController - (void)viewDidLoad { [super viewDidLoad]; UIButton *watch1 = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; watch1.tag=123; watch1.frame = CGRectMake(5.0, 10.0, 140.0, 170.0); [watch1 setBackgroundImage:[UIImage imageNamed:@"Watch1.png"] forState: UIControlStateNormal]; [watch1 addTarget:self action:@selector(WatchesPreviewButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; [scr addSubview:watch1]; UIButton *watch2 = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; watch1.tag=456; watch2.frame = CGRectMake(170.0, 10.0, 140.0, 170.0); [watch2 setBackgroundImage:[UIImage imageNamed:@"watch2.png"] forState: UIControlStateNormal]; [watch2 addTarget:self action:@selector(WatchesPreviewButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; [scr addSubview:watch2]; } - (IBAction)WatchesPreviewButtonPressed:(id)sender { if(sender.tag==123) { WatchPreviewViewController *watchesPreviewView = [[WatchPreviewViewController alloc] initWithNibName:@"WatchPreviewViewController" bundle:nil andStyle:WatchPreviewViewControllerStyleType1]; [self.navigationController pushViewController:watchesPreviewView animated:YES]; [watchesPreviewView release]; } else { WatchPreviewViewController *watchesPreviewView = [[WatchPreviewViewController alloc] initWithNibName:@"WatchPreviewViewController" bundle:nil andStyle:WatchPreviewViewControllerStyleType2] ; [self.navigationController pushViewController:watchesPreviewView animated:YES]; [watchesPreviewView release]; } }
答案 1 :(得分:1)
在(void)viewDidLoad
中创建每个按钮时,为每个按钮设置标记属性
:
watch1.tag = 1 //new code
[scr addSubview:watch1]; //existing code
watch2.tag = 2 //new code
[scr addSubview:watch2]; //existing code
在WatchPreviewViewController.h
中,在@interface部分创建一个属性:
@property (assign) int watchType;
然后在- (IBAction)WatchesPreviewButtonPressed:(id)sender
中根据按下的按钮设置属性:
watchesPreviewView.watchType = sender.tag
(您可能需要对发件人进行类型转换:(UIView*)sender.tag
,我不会对此进行测试)
现在,您的if(??????????????????)
测试为if (self.watchType == 1)