I can reproduce this on iOS8 but not in ripple emulator.
I have the following directive:
.directive('checkList', function ($ionicModal, $parse) {
return {
scope: {},
link: function (scope, element, attr) {
element.css('cursor', 'pointer');
var selectedItemsExpression = $parse(attr.selectedItems);
scope.syncSelectedItems = function () {
selectedItemsExpression.assign(scope.$parent,
scope.items
.filter(function (i) {
return i.isSelected;
})
.map(function (i) {
return i.name;
}));
};
var modal;
scope.hide = function () {
modal.remove();
modal = null;
};
element.on('click', function () {
var selectedItems = selectedItemsExpression(scope.$parent) || [];
scope.items = scope.$parent.$eval(attr.items)
.map(function (i) {
return {
name: i,
isSelected: selectedItems.indexOf(i) != -1
};
});
if (modal) {
modal.show();
}
else {
$ionicModal.fromTemplateUrl('templates/check-list.html', {
scope: scope
}).then(function (m) {
modal = m;
modal.show();
});
}
});
element.on('$destroy', function () {
if (modal) {
modal.remove();
modal = null;
}
});
}
};
})
with the following template:
<ion-modal-view>
<ion-content>
<div ng-repeat="item in items">
<ion-checkbox ng-model="item.isSelected" ng-change="syncSelectedItems()">{{item.name}}</ion-checkbox>
</div>
<a class="button button-full button-energized" ng-click="$event.stopPropagation();hide()">Done</a>
</ion-content>
</ion-modal-view>
when the ion-modal is long enough to require scrolling, I can’t touch to scroll it on iOS the second time it’s shown. I can check and uncheck selections just fine, but the scroll does not respond. The first time it’s shown, everything works fine.
I’ve tried not destroying on hide and just show/hiding the modal, but that produces the same result.
I’m using beta 13.