Problemas com String em Classe Scanner

Boa tarde à todos, tenho um algoritmo para resolver e normalmente utilizo a classe Scanner para leitura de dados do teclado.
Um exercício Simples, Apenas preciso fazer cadastro de cliente com arrayList, e na posição em que se encontra o nome será o código do cliente:

import java.util.ArrayList;
import java.util.Scanner;

public class Controla_Arremates {

    static Scanner teclado = new Scanner(System.in);
    static ArrayList<String> ListaNome = new ArrayList();
    static String sNome;
    static  int iContinua;   

    public static void main(String[] args)throws Exception{
       do{
            System.out.println("Informe o nome do Cliente: ");
            sNome = teclado.next();
            ListaNome.add(sNome);
            System.out.println("O Codigo de " +sNome+ " é: " +ListaNome.size());
            System.out.println("Deseja cadastrar mais clientes? 1- Sim ou 2-Nao");
            iContinua = teclado.nextInt();
        }while(iContinua == 1);
    }
 }

O problema é um seguinte:
Quando insiro um nome Composto, por exemplo “João da Silva” ele não funciona…
Quando mudo esta linha de código

sNome = teclado.next();
para sNome = teclado.nextLine();
ele passa a funcionar na primeira vez, porém na segunda não funciona. como resolver isso?

O problema é esta linha

iContinua = teclado.nextInt(); 

Pois ele interpreta o número 1 para prosseguir e joga o “\n” como sendo argumento do nextLine();
Eu apenas modifiquei estas linhas e funcionou redondo:

sNome = teclado.nextLine();  
            ListaNome.add(sNome);  
            System.out.println("O Codigo de " +sNome+ " é: " +ListaNome.size());  
            System.out.println("Deseja cadastrar mais clientes? 1- Sim ou 2-Nao");  
            iContinua = Integer.parseInt(teclado.nextLine());  

Resultados:

Informe o nome do Cliente: 
abc d
O Codigo de abc d é: 1
Deseja cadastrar mais clientes? 1- Sim ou 2-Nao
1
Informe o nome do Cliente: 
abcd
O Codigo de abcd é: 2
Deseja cadastrar mais clientes? 1- Sim ou 2-Nao
1
Informe o nome do Cliente: 
abc d
O Codigo de abc d é: 3
Deseja cadastrar mais clientes? 1- Sim ou 2-Nao
1
Informe o nome do Cliente: 
Geronimo
O Codigo de Geronimo é: 4
Deseja cadastrar mais clientes? 1- Sim ou 2-Nao
2

Valeu mesmo!