2016-12-20 5 views
0

Ich habe zwei ViewController, einer heißt ListViewController, der andere heißt UploadViewController. ListViewController ist die erste Ansicht nach dem Start, und durch Drücken der "new" -Schaltfläche wird auf UploadViewController gesprungen. Meine letzte Frage ist: Ich habe ein Bild über UploadViewController.cs, und ich möchte es auf dem ListViewController anzeigen, wie kann ich das tun?Hat ein Bild von einem ViewController, wie kann ich es auf dem anderen ViewController anzeigen

Mein Weg ist, Bild unter UploadViewController an ListViewController übergeben, durch eine Funktion.

In UploadViewController habe ich "listView" definiert, und sein Typ ist ListViewController, so dass ich die Funktion in ListViewController verwenden kann. (Das ist mein Ziel, nicht sicher, ob dieser Schritt richtig ist.)

ListViewController listView = new ListViewController((IntPtr)null); 

Dann in UploadViewController,

protected void Handle_FinishedPickingMedia (object sender, UIImagePickerMediaPickedEventArgs e) 
     { 
      UIImage originalImage = e.Info[UIImagePickerController.OriginalImage] as UIImage; 
      selectedImage = originalImage; 
      listView.SetImage (selectedImage); 
      this.imagePicker.DismissModalViewController (true); 
     } 

Bei der Umsetzung listView.SetImage (SelectedImage), wird es zu ListViewController zurückspringen, und ausführen:

public void SetImage (UIImage image) 
     { 
      imageView4.Image = image; //imageView4 is a imageView defined in mainStoryboard 
     } 

Problem ist: die App stürzt nach SetImage Umsetzung. Informationen zeigen, dass imageView4 oder ListViewController nicht definiert sind oder entfernt werden. Aber warum? Beide werden zunächst in mainStoryboard erstellt, wann werden sie entsorgt? Wie kann ich das vermeiden? Oder, ich sollte nicht einfach zu einem ViewController zurückspringen und sein Aussehen ohne irgendwelche Übergänge ändern?

Ich werde es wirklich für Antworten auf alle meine Fragen zu schätzen wissen! Vielen Dank!

Antwort

0

Sie müssen eine Image Box in Ihre ListViewController setzen. Sollte in etwa so aussehen:

Image img = new Image(); 
img.Name = "myImage"; 
listView.Add.Children(img); 
myImage.ItemSource = imageView4; 
0

zuordnen Bild UIImageView nach „viewDidLoad“ des Controllers, auf die sich die UIImageView gehört.

Zum Beispiel können Sie private Variable erstellen, und speichern Sie dort Bild bis viewDidLoad Methode aufgerufen wird.

private UIImage imageToShow; 

public void SetImage (UIImage image) 
{ 
    this.imageToShow = image; 
} 

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 
    this.imageView4.Image = this.imageToShow; 
} 
Verwandte Themen