私は比較的新しいです。私の2番目のアプリに着手し、複数のView Controllerで大きな苦労をしています。このメールの最後に関連するコードを追加しました。複数のUIViewControllerの問題
MainViewController:RoomViewControllerを作成し、そのビューを問い合わせます。 RoomViewController:部屋の中にアイテム(この場合は、Hectorとコーヒー)を設定します。 Room.m:部屋の背景 Item.m:すべての情報を取得し、それ自身を作成し、ユーザーの操作を可能にします。 (touchesBeganなど)
問題は次のとおりです。 アイテムがRoomViewControllerで作成されている場合、タッチが機能しません。 アイテムがMainViewControllerで作成されると、タッチが機能します(roomView内に作成されている場合でも)。
私はRoomViewControllerに何らかのトーチを渡して、インタラクションを受け入れるように指示する必要がありますか? 私は文字通り机の上に頭をぶつけて物を投げていました。なぜなら、それは死んでいるはずだと確信しているからです。 あなたが提供できるヘルプは私を非常に幸せにするでしょう。
-k。
Main view controller:
- (void)viewDidLoad {
RoomViewController *viewController = [[RoomViewController alloc] initWithNibName:@"RoomViewController" bundle:nil];
viewController.mainViewController = self;
self.roomViewController = viewController;
[viewController release];
roomView = self.roomViewController.view;
[self.view addSubview:self.roomViewController.view];
}
ルームビューコントローラ:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
room = [[Room alloc] initRoom:@"OFFICE" displayName:@"Office"];
[self.view addSubview:room];
NSString *itemName = @"COFFEE";
CGPoint iLocation = CGPointMake(82, 192);
CGPoint hLocation = CGPointMake(120, 200);
NSString *hFace = @"FL";
Item *newItem = [[Item alloc] initItem:itemName viewController:self atLocation:iLocation];
[self.view addSubview:newItem];
[newItem release];
[self.view addSubview:hector];
hector.center = CGPointMake(350, 200);
}
return self;
}
Room.m:
-(id)initRoom:(NSString *)rName displayName:(NSString *)rDisplay {
roomName = rName;
displayName = rDisplay;
NSString *bgFile = [NSString stringWithFormat:@"%@_BG.png", roomName];
[self initWithImage:[UIImage imageNamed:bgFile]];
[self setCenter:CGPointMake(240, 135)];
return self;
}
Item.m:
- (id)initItem:(NSString *)iName viewController:(RoomViewController *)vc atLocation:(CGPoint)iLocation {
itemName = iName;
NSString *itemFile = [NSString stringWithFormat:@"%@_ITEM.png", itemName];
[self initWithImage:[UIImage imageNamed:itemFile]];
[self setCenter:iLocation];
myViewController = vc;
self.userInteractionEnabled = YES;
return self;
}
-(void)touchesBegan... etc
あなたのroomviewcontrollerで使用できる対話はありますか? – Daniel