Merhaba, tam olarak nasıl anlatacağımı bilemediğim için başlık biraz saçma olmuş olabilir. Şimdi bir to-do uygulaması üzerinde çalışıyorum. Şöyle bir projem var.

alt text

Normal olarak rowa tıklayınca yeni bir view açılıyor. Bu kısımda sorun yok. Ancak ben imageview tıklayınca resim değişmesini rowun geri kalan kısmına tıklayınca ise yine yeni bir viewe geçmesini istiyorum. Yani aynı rowda 2 farklı işlem yapmak istiyorum. Eğer farkettiyseniz zaten appstoreda bulunan uygulamaların çoğu bu şekilde. Fikrin olan biri düşüncelerini paylaşırsa sevinirim veya örnek bir proje bile güzel olabilir.

Umarım anlatabildim. Anlayan bir dostum başlığı daha verimli bir hale getirirse sevinirim.

soruldu: 29 Mar '13, 07:50

Salieh's gravatar image

Salieh
2081014
cevap kabul oranı: 0%

değiştirildi: 01 Nis '13, 05:38

creseos's gravatar image

creseos
2.0k468187


Benim aklıma iki farklı yöntem geliyor. şu anda çok vaktim yok o yüzden kod kısmını gerekirse sonradan ekleyim :)

1- Cell'lerinizde UIDisclosureIndicator kullanarak daha detaya inme işlemini bütün hücre yerine sadece sağ tarafta bulunacak mavi button'a tıklayarak yapmak.

2- yukarıdaki değişikliği yaptıktan sonra ise hücrede resim değişmesi işlemini doğrudan hücre içerisinden yapmanız çok yanlış olur, hücrelerin içeriğini değiştirmek yerine hücrelerin bağlı olduğu datasource ta değişiklik yapmanız gerekiyor. Sizin nceki sorunuzdan sanırım bu dataları aldığınız bir array vardı. aşağıdaki şekilde yaparsanız:

cellForRowAtIndexPath içerisinde:

cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

hücre seçiminde resmin değişmesi için:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

   ToDo* todo = [array objectAtIndex:indexPath.row];
   todo.isDone = YES;
   [array replaceObjectAtIndex:indexPath.row];
  [self.tableView reloadData];
 }

disclosure button'a tıklandığında yapılacaklar için ise:

 - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
  .......Detay view'ına geçiş kodu......
}

Segue için uidisclosureindicatorbutton kullanmak için önce mevcut segue bağlantılarını silin ve aşağıdaki kodu tableview'a ekleyin: (aşağıdaki kodlar stackoverflowdan alıntıdır)

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
   //segue yordamları
    [self performSegueWithIdentifier:@"segueName" sender:self];
}

Sonrasında segue işlemlerini yapmak için hangi buttondan tıklandığını anlamak adına:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

{

if([segue.identifier isEqualToString:@"segueName"]){

    NSIndexPath * indexPath =  self.sequenceTableView.indexPathForSelectedRow;
   // hangi button indexpath'indan tıklandığını anladıktan sonra ona göre hazırlıklar..

 }

}

permanent link

cevaplandı: 30 Mar '13, 11:13

dreampowder's gravatar image

dreampowder
3.3k112849
cevap kabul oranı: 23%

değiştirildi: 01 Nis '13, 03:40

Merhaba, ilginize teşekkür ediyorum. Öncelikle şöyle bir şey var ki detay view geçiç işlemini storyboard segueler ile yapıyorum.

Sizin verdiğiniz yolla yapınca tik olmayanları tikliyor. Bunu boolu if kontrolüyle hallederiz orda sıkıntı yok. Ancak segue yolu ile yaptıgım için tikledikten hemen sonra detay view e geçiç yapıyor. Bunu nasıl çözebiliriz?

Segue kodlarımda şunlardır: http://pastie.org/7191690

Ayrıca DetailDisclosureButton çok çirkin duruyor bunun yerine Disclosure Indicator tercihimdir :D

(31 Mar '13, 07:50) Salieh Salieh's gravatar image

Merhaba, öncelikle ben ios kodu yazmaya başladığımda segue yoktu, açıkçası hiç kullanmadığım bir yöntem. Bana kalırsa storyboard veya segue kullanmayın, güzel güzel detaildisclosurebutton'a tıklandığında [self.navigationcontroller pushviewcontroller: animated:] yordamını kullanın. Ayrıca disclosure button görüntüsünü aynen disclosure indicator gibi gösterebilirsiniz, sonuçta disclosurebutton bir uibutton, uibutton resmini değiştirmeyi internetten bulabilirsiniz.

(01 Nis '13, 03:35) dreampowder dreampowder's gravatar image

yine de segue için cevabı güncelledim

(01 Nis '13, 03:37) dreampowder dreampowder's gravatar image

custom cell olusturup, bu custom cell'in delegate oldugu .h dosyasina, ibaaction tanimlanir. ve xib dosyasinda imageview yerine button atilir... bu ibaaction butona tanimlanir. butondaki image degistirilir

sonra normal tableviewe custom cell eklendiginde zaten butona dokundugunda calisacak bir ibaaction olacak... suanda cok uykum var ama arzu edersen yarin filan kodu yazabilirim...

permanent link

cevaplandı: 27 Haz '13, 19:57

Antiokhos's gravatar image

Antiokhos
8365815
cevap kabul oranı: 17%

değiştirildi: 27 Haz '13, 19:59

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×45
×16
×5

Soruldu: 29 Mar '13, 07:50

Görüntüleme: 1,113 kez

Son güncelleme: 27 Haz '13, 19:59

powered by BitNami OSQA