The planning process in urban rail transportation can be split into several stages, including line planning, timetabling, rolling stock scheduling and so on. The outcome of a stage provides inputs or constraints to the subsequent ones. However, while the output can be good or optimal at each stage, it rarely considers the global quality for the overall planning process. Furthermore, problems tackled at planning phase often use a more aggregate representation of reality, to achieve a more general overview. An integrated approach, while more complex to solve, may mitigate the gap between solution of different stages and a validation of a plan would still be required before its implementation in practice. In this paper, we focus on integrated optimization of train timetabling and rolling stock circulation for urban rail transit line with time-based origin-destination-dependent passenger travel demand and heterogeneous rolling stocks. The aim is to generate a comfortable timetable for passengers and an efficient timetable for operators. The objective is to minimize the total waiting time for passengers and the costs for operators, while constraints regarding train movements, passenger boarding and alighting, available rolling stocks and their capacity are considered. A mixed integer linear programming model is formulated and solved by an iterative programming approach. Computational experiments are performed on the Chongqing Rail Transit Line 2 to verify the efficiency and effectiveness of the proposed model and solving method. With respect to CPLEX, results show the proposed iterative programming approach has advantages both on computation time and solution quality.