diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 8a8ac9c..74a0708 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -410,7 +410,8 @@
     if (this->height() && this->width()) {
         this->onSizeChange();
     }
-
+    
+    fPDFData = NULL;
 #ifdef SK_BUILD_FOR_MAC
     testpdf();
 #endif
@@ -760,7 +761,7 @@
     canvas.clipRegion(inval);
     canvas.drawColor(0xFFFF8080);
 }
-
+#include "SkData.h"
 void SampleWindow::afterChildren(SkCanvas* orig) {
     if (fSaveToPdf) {
         fSaveToPdf = false;
@@ -775,12 +776,19 @@
 #ifdef ANDROID
         name.prepend("/sdcard/");
 #endif
+        
+#ifdef SK_BUILD_FOR_IOS
+        SkDynamicMemoryWStream mstream;
+        doc.emitPDF(&mstream);
+        fPDFData = SkData::NewWithCopy(mstream.getStream(),mstream.getOffset());
+#endif
         SkFILEWStream stream(name.c_str());
         if (stream.isValid()) {
             doc.emitPDF(&stream);
             const char* desc = "File saved from Skia SampleApp";
             this->onPDFSaved(this->getTitle(), desc, name.c_str());
         }
+        
         delete fPdfCanvas;
         fPdfCanvas = NULL;
 
@@ -939,6 +947,27 @@
     return true;
 }
 
+bool SampleWindow::goToSample(int i) {
+    fCurrIndex = (i) % fSamples.count();
+    this->loadView(fSamples[fCurrIndex]());
+    return true;
+}
+
+SkString SampleWindow::getSampleTitle(int i) {
+    SkView* view = fSamples[i]();
+    SkString title;
+    SkEvent evt(gTitleEvtName);
+    if (view->doQuery(&evt)) {
+        title.set(evt.findString(gTitleEvtName));
+    }
+    view->unref();
+    return title;
+}
+
+int SampleWindow::sampleCount() {
+    return fSamples.count();
+}
+
 void SampleWindow::postAnimatingEvent() {
     if (fAnimating) {
         SkEvent* evt = new SkEvent(ANIMATING_EVENTTYPE);
