سؤال

أريد إضافة وجهة نظر جديدة في اضغط على زر OncallOutaccessPoryview. لدي حاليا الوظيفة لإسقاط رقم التعريف الشخصي على الخريطة. Sallout (MKANNOTATIONATION) مع وجود عنوان، فرعي، وشيفرون الأحمال عندما أقوم بالنقر فوق رقم التعريف الشخصي. عندما أقوم بالنقر فوق Chevron (onmancalloutaccessoryview)، أريد رؤية أخرى لإظهار المزيد من المعلومات في هذه المرحلة. الآن، فإن صنبور شيفرون لا يفعل شيئا. هذا هو ما لدي:

-(IBAction)showInfo:(id)sender 
{     
     int calloutButtonPressed = ((UIButton *)sender).tag;
     if(calloutButtonPressed < 99999)
     {
          if(self.DetailView == nil)
          {
               DetailViewController *tmpViewController = [[UIViewController alloc] initWithNibName:@"DetailView" bundle:nil];
               self.DetailView = tmpViewController;
               [tmpViewController release];
          }

          if (calloutButtonPressed == 1) 
          {
                         // Using the debugger, I found that calloutButtonPressed is equal to 0 when the button is pressed.
                         // So I'm not sure what the point of this method is...
                }
          self.DetailView.title = @"Title";
     }
 }

لقد تحققت من أن طريقة العمل هذه تسمى الضغط على شيفرون. لسوء الحظ، لا أستطيع الحصول عليها لسحب وجهة نظر جديدة. إذا كان أي شخص يعرف ما أفعله خطأ، فيرجى إخبارنا بذلك. أنا في القليل من قرصة ...

شكرًا!

توماس

هل كانت مفيدة؟

المحلول

    -(IBAction)showInfo:(id)sender 
{   
     int calloutButtonPressed = ((UIButton *)sender).tag;
     if(calloutButtonPressed < 99999)
     {
          if(self.detailView == nil)
          {
               DetailViewController *tmpViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
               self.detailView = tmpViewController;
               [tmpViewController release];
          }

          [self.navigationController pushViewController:self.detailView animated:YES];

          if (calloutButtonPressed == 0) 
          {
               // TRP - I inserted my view atIndex:99999 to ensure that it gets placed in front of all windows
               // TODO: figure a better way to do this
               [self.view insertSubview:detailView.view atIndex:99999];
          }
          self.detailView.title = @"Title";
     }

}

لقد فقد هذا البيان الواحد:

[self.view insertSubview:detailView.view atIndex:99999];

أرغب في العثور على طريقة أخرى حتى لا يجب أن يكون لديك عدد السحر (99999) في هناك (بالإضافة إلى ذلك، يبدو أن كيندا غير ناضجة ...). أنا لست قلقا جدا بشأن ذلك، لأنه يعمل على الرغم من ذلك.

حصلت على مساعدتي من منتديات أبل المطور، هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top