だから私はいくつかの値を保持するこのクラスを持っています。ビューコントローラで、これらのオブジェクトの束を作成し、それらをクリックすると、データを設定できます。次に、それらを移動してオブジェクトが交差するときに、それらの間でデータを交換する必要があるメソッドがあります。今、私がそれをステップスルーすると、すべてがうまく機能しているようです。Selfは他のオブジェクトからのデータも保持しますが、オブジェクトをもう一度クリックすると、古いデータの保持に戻ります。なぜこれが起こるのか誰かが何か考えを持っていますか?
[OK]をクリックしてそのオブジェクトにデータを設定する必要があるポップアップで各オブジェクトにデータを設定したので、データが変更されることがはっきりとわかる場合、このデータがどこから返されるのかわかりませんステップスルーするとき
データを交換する方法は次のとおりです。
これは私のtouchesEndedメソッドで発生します。
Seat.h
#import <UIKit/UIKit.h>
#import "CustomUIScrollView.h"
#import "PopOverViewController.h"
@interface Seat : UIView
@property (nonatomic) CGRect rectangle;
@property (strong, nonatomic) CustomUIScrollView *sv;
@property (assign) int seatId;
@property (assign) int seatsSelfObjectIndex;
@property (strong,nonatomic) NSString *firstName;
@property (assign,nonatomic) CGColorRef selectedfillColor;
@property (nonatomic) int swapDataWithSeatInt;
@property (strong, nonatomic) Seat *swapDataWtihSeat;
@property (assign) CGPoint tempLoc;
@property (assign) BOOL didSeatIntersect;
@end
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[self superview]];
self.center = location;
for (int i = 0; i < seats.count; i++)
{
if (CGRectIntersectsRect(self.frame, [[seats objectAtIndex:i]frame]))
{
if (i != seatsSelfObjectIndex)
{
swapDataWithSeatInt = i;
swapDataWtihSeat = [seats objectAtIndex:swapDataWithSeatInt];
didSeatIntersect = YES;
}
}
}
}
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
selectedfillColor = [UIColor clearColor].CGColor;
[self setNeedsDisplay];
if (!didSeatIntersect)
{
[self setCenter:tempLoc];
}
else
{
NSString *tempFirstName = [[seats objectAtIndex:swapDataWithSeatInt]firstName];
[[seats objectAtIndex:swapDataWithSeatInt ] setFirstName:self.firstName];
[self setFirstName:tempFirstName];
}
}