Question: I'm trying to get the currently displayed `ViewController` using the following:

```
let currentViewController = UIApplication.sharedApplication().keyWindow!.rootViewController?.presentedViewController

```

This property gives me the `TabBarController`. The only property after `presentedViewController` is "`childViewControllers`".

How could I use this to attain the currently displayed `ViewController`?

Answer: 
I would use a computed property instead of a filter and a method.

I'd go through each cast member and if any of their groups is in `selected_groups` I'd allow it through the filter. I'd so this using `Array.some`.

```
results: function() {
  var self = this
  return self.cast.filter(function(person) {
    return person.groups.some(function(group) {
      return self.selected_groups.indexOf(group) !== 1
    })
  })
},

```

Here's a quick demo I set up, might be useful: <http://jsfiddle.net/crswll/df4Lnuw6/8/>
Since filters are deprecated (in `v-for`, see Bill's comment), you should get into the habit of making computeds to do filtery things.

(If you're on IE, you can't use [`includes`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) without a polyfill; you can use `indexOf...>=0` instead.)

```js
new Vue({
  el: '#app',
  data: {
    selected_groups: [],
    ensemble_groups: ["Leads", "Understudies", "Children", "Ensemble"],

    cast: [{
      actor_name: "Dave",
      groups: ["Leads"],
    }, {
      actor_name: "Jill",
      groups: ["Leads"],
    }, {
      actor_name: "Sam",
      groups: ["Children", "Ensemble"],
    }, {
      actor_name: "Austin",
      groups: ["Understudies", "Ensemble"],
    }, ]
  },
  computed: {
    filteredCast: function() {
      const result = [];

      for (const c of this.cast) {
        if (this.anyMatch(c.groups, this.selected_groups)) {
          result.push(c);
        }
      }

      return result;
    }
  },
  methods: {
    anyMatch: function(g1, g2) {
      for (const g of g1) {
        if (g2.includes(g)) {
          return true;
        }
      }
      return false;
    }
  }
});
```

```html
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.min.js"></script>
<div id="app">
  <template v-for="group in ensemble_groups">
    <input name="select_group[]" id="group_@{{ $index }}" :value="group" v-model="selected_groups" type="checkbox">
    <label for="group_@{{ $index }}">@{{ group }}</label>
  </template>

  <template v-for="person in filteredCast">
    <div>@{{ person.actor_name }}</div>
  </template>
</div>
```